数据结构与算法(第2版)
作者: 陈卫卫,王庆瑞
出版时间:2015-07-22
出版社:高等教育出版社
“十二五”普通高等教育本科国家级规划教材全国优秀教材二等奖
- 高等教育出版社
- 9787040433074
- 2
- 52423
- 49231596-5
- 平装
- 异16开
- 2015-07-22
- 570
- 405
- 工学
- 软件工程
- TP311.12
- 计算机科学与技术
- 本科
本书是对2010年第1版教材的内容进行优化重组、修订而成。全书共6章,分别为概述、表结构、树结构、图结构、排序和问题的固有难度和算法设计的一般主法简介。主要内容包括数据结构和算法的基本概念;顺序表、链表、栈、队、矩阵、字符串、散列表、广义表、树、二叉树、检索树、最优检索树、AVL树、红黑树、B树、B+树、2-3树、Trie树、哈夫曼树、判定树、union-find树、图等基本结构及各结构的特点和存储方法;实现查找、插入、删除、遍历、搜索算法的设计方法和时空效率分析,实现图的最小生成树和最短路径求解算法、DAG图的拓扑排序和关键路径求解算法,以及实现各种内排序算法、文件结构和外排序算法;讲解问题的固有难度、算法设计的一般方法,并给出表、树、图等典型基本结构的C++类实现示例。全书配有400多道各种题型的习题。
本书语言通俗流畅,叙述简洁,可读性强,配有丰富的教学资源,可作为普通高等学校本科计算类专业教材和教学参考书,也可作为程序设计爱好者的理论指导书。
前言
第1章 概述
1.1 基本概念
1.1.1 数据结构的概念
1.1.2 抽象数据类型
1.1.3 算法的概念
习题1.1
1.2 算法的描述和评价
1.2.1 算法的描述
1.2.2 算法的评价标准和评价方法
1.2.3 计算时间复杂性的一般方法
习题1.2
内容小结
综合习题
第2章 表结构
2.1 基本概念和顺序表
2.1.1 基本概念
2.1.2 顺序表的插入和删除
2.1.3 顺序表的查找
习题2.1
2.2 链表
2.2.1 基本概念和链表种类
2.2.2 链表的构造
2.2.3 链表的遍历
2.2.4 链表的插入和删除
2.2.5 静态链表
习题2.2
2.3 栈和队
2.3.1 基本概念
2.3.2 进栈和退栈算法
2.3.3 进队和出队算法
2.3.4 应用举例
习题2.3
2.4 矩阵和字符串
2.4.1 矩阵的基本概念和存储方法
2.4.2 稀疏矩阵运算示例
2.4.3 字符串的基本概念和简单匹配算法
2.4.4*其他匹配算法
习题2.4
2.5 散列表
2.5.1 散列函数
2.5.2 散列表的处理算法
2.5.3*散列表的性能分析
习题2.5
2.6*广义表
习题2.6
2.7 表结构的类实现示例
习题2.7
内容小结
综合习题
第3章 树结构
3.1 基本概念和存储方法
3.1.1 普通树的基本概念
3.1.2 二叉树的基本概念
3.1.3 普通树与二叉树的相互转换
3.1.4 树的存储方法
习题3.1
3.2 二叉树的遍历和构造
3.2.1 二叉树的遍历
3.2.2*遍历序列的前驱和后继
3.2.3 遍历的应用示例
3.2.4 二叉树的构造
3.2.5*非递归的遍历算法
习题3.2
3.3 检索树
3.3.1 检索树的查找
3.3.2 检索树的插入和构造
3.3.3 检索树的删除
3.3.4*最优检索树
习题3.3
3.4 平衡树
3.4.1 AVL树
3.4.2 红黑树
习题3.4
3.5*B树和Trie树
3.5.1 B树
3.5.2 B+树
3.5.3 Trie树
习题3.5
3.6 几个实用树结构
3.6.1 哈夫曼树
3.6.2*判定树
3.6.3*union-find树
习题3.6
3.7 树结构的类实现示例
习题3.7
内容小结
综合习题
第4章 图结构
4.1 基本概念和存储方法
4.1.1 图的定义和有关术语
4.1.2 图的存储方法
习题4.1
4.2 图的遍历和应用示例
4.2.1 先深搜索
4.2.2 先广搜索
4.2.3*无向图的关节点
习题4.2
4.3 最小生成树和最短路径
4.3.1 Kruskal算法
4.3.2 Prim算法
4.3.3 Dijkstra算法
4.3.4*Floyd算法
习题4.3
4.4 有向无回路图
4.4.1 基本概念
4.4.2 拓扑排序
4.4.3*关键路径
习题4.4
4.5 图结构的类实现示例
习题4.5
内容小结
综合习题
第5章 排序
5.1 基本概念
习题5.1
5.2 插入排序
5.2.1 直接插入排序
5.2.2 二分插入排序
5.2.3 希尔排序
习题5.2
5.3 交换排序
5.3.1 冒泡排序
5.3.2 快速排序
习题5.3
5.4 选择排序
5.4.1 一般原理和效率分析
5.4.2 树选排序
5.4.3 堆排序
习题5.4
5.5 合并排序
5.5.1 递归的合并排序
5.5.2*非递归的合并排序
习题5.5
5.6 基数排序
5.6.1 基本原理和示例
5.6.2 算法的实现和分析
习题5.6
5.7 外部排序
5.7.1 文件的组织结构
5.7.2 顺串的合并
5.7.3*初始顺串的生成
5.7.4*最佳合并树
5.7.5*磁带排序
习题5.7
内容小结
综合习题
第6章*问题的固有难度和算法设计的一般方法简介
6.1 问题的固有难度和分类
6.1.1 算法的重要地位
6.1.2 问题的固有难度
6.1.3 不确定性算法
6.1.4 三大重要的问题类
习题6.1
6.2 算法设计的一般方法
6.2.1 集合运算的数据结构选取
6.2.2 递归、分治和平衡
6.2.3 贪心法
6.2.4 动态规划法
6.2.5 搜索-回溯法
习题6.2
内容小结
综合习题
参考文献
版权