第1章 绪论 1
1.1 本书讨论的范畴 1
1.2 抽象数据类型和数据结构 2
1.3 问题、算法和程序 5
1.4 用类C语言描述算法 6
1.5 习题 9
第2章 算法分析 10
2.1 渐近算法分析 10
2.2 数学基础 14
2.3 非递归算法的效率分析 17
2.4 递归算法的效率分析 19
2.5 习题 23
第3章 算法设计的基本方法 26
3.1 蛮力法(穷举探索法) 26
3.2 贪心法 26
3.3 分治法 29
3.4 减治法 32
3.5 变治法 36
3.7 动态规划 41
3.6 时空权衡 41
3.8 回溯法 48
3.9 分枝限界 51
3.10 习题 54
第4章 线性表 57
4.1 线性表的抽象数据类型 57
4.2 线性表的顺序表示与实现 60
4.3 线性表的链式表示和实现——链式映像 67
4.4 一元多项式的表示 78
4.5 习题 79
第五章 栈和队列 83
5.1 栈 83
5.2 栈的应用 88
5.3 队列 94
5.4 队列的应用 100
5.5 习题 101
第6章 串和数组 104
6.1 串 104
6.2 数组 118
6.3 习题 124
第7章 二叉树和树 129
7.1 树的定义和基本术语 129
7.2 二叉树 132
7.3 二叉树遍历 138
7.4 树和森林 150
7.5 赫夫曼树及其应用 157
7.6 习题 166
8.1 图的抽象数据类型 168
第8章 图和广义表 168
8.2 图的存储表示 171
8.3 图的遍历 174
8.4 连通网的最小生成树 178
8.5 最短路径问题 183
8.6 拓扑排序 190
8.7 关键路径 193
8.8 广义表 195
8.9 习题 198
9.1 排序的基本概念 201
第9章 内部排序 201
9.2 插入排序 202
9.3 交换排序 205
9.4 选择排序 209
9.5 归并排序 213
9.6 基数排序 213
9.7 各种排序方法的综合比较 217
9.8 习题 218
第10章 查找 220
10.1 静态查找表 221
10.2 动态查找表 228
10.3 哈希表 236
10.4 习题 246
第11章 文件 248
11.1 基本概念 248
11.2 顺序文件 250
11.3 索引文件 252
11.4 哈希文件 255
11.5 多关键码文件 256
11.6 习题 259