第一章 概论 1
1.1 数据类型和数据结构 1
1.2 基本数据结构 5
1.3 算法及算法分析 7
第二章 表 10
2.1 抽象数据类型表 10
2.2 表的实现 13
2.3 其它表结构 21
2.4 稀疏矩阵的链表表示 26
2.5 表的应用——动态存储管理 29
习题 40
第三章 栈和队列 42
3.1 抽象数据类型栈 42
3.1.1 栈的定义及基本操作 42
3.1.2 栈的实现 45
3.2 抽象数据类型队列 48
3.2.1 队列的定义及基本操作 48
3.2.2 队列的实现 48
3.2.3 优先队列 53
3.3 栈和队列的应用举例 53
3.4 递归数据结构 64
习题 67
第四章 串 69
4.1 抽象数据类型串 69
4.2 串的实现 70
4.3 串的模式匹配 77
习题 81
第五章 树 82
5.1 树的基本概念 82
5.2 二叉树 84
5.2.1 抽象数据类型二叉树 84
5.2.2 二叉树的实现 86
5.3 二叉树的遍历 89
5.4 线索树 94
5.5 树和森林 99
5.5.1 森林的二叉树表示 99
5.5.2 树和森林的遍历 101
5.5.3 树和森林的数组表示 102
5.6 树的应用 106
5.6.1 抽象数据类型UFSET的实现 106
5.6.2 优先队列的实现 110
5.6.3 哈夫曼算法和哈夫曼编码 113
习题 119
第六章 图 122
6.1 图的概念 122
6.2 图的存储表示 125
6.3 图的遍历 130
6.3.1 深度优先搜索 130
6.3.2 广度优先搜索 131
6.4 最小代价生成树 133
6.5 最短路径 139
6.5.1 某个顶点(源点)到其它每个顶点的最短路径 139
6.5.2 每一对顶点之间的最短路径 143
6.6 拓扑排序 145
6.7 关键路径 148
习题 151
第七章 内排序 155
7.1 插入排序 155
7.1.1 直接插入排序 155
7.1.2 二分法插入排序 159
7.2 冒泡排序 160
7.3 选择排序 163
7.4 希尔排序 164
7.5 快速排序 166
7.6 堆排序 169
7.7 基数排序 171
7.8 归并排序 175
习题 179
第八章 查找 181
8.1 表的查找 181
8.1.1 顺序查找 181
8.1.2 有序表的查找 183
8.1.3 分块查找 185
8.2 散列技术 186
8.2.1 散列函数 187
8.2.2 解决冲突的方法 189
8.3 二叉查找树 193
8.4 平衡二叉树 200
8.5 Tries 211
8.6 B树和B+树 215
习题 223
第九章 外排序 225
9.1 外存储器 225
9.2 初始归并段的生成 227
9.3 磁带归并模式 233
9.4 磁盘归并技术 237
习题 240
参考书目 241