第1章 绪论 1
1.1抽象数据类型的表示与实现 1
1.2算法和算法分析 7
第2章 线性表 9
2.1线性表的类型定义 9
2.2线性表的顺序表示和实现 10
2.3线性表的链式表示和实现 20
2.3.1线性链表 20
2.3.2循环链表 40
2.3.3双向链表 44
第3章 栈和队列 50
3.1栈 50
3.2栈的应用举例 53
3.2.1数制转换 53
3.2.2行编辑程序 54
3.2.3迷宫求解 56
3.2.4表达式求值 61
3.3栈与递归的实现 65
3.4队列 67
3.4.1链队列——队列的链式表示和实现 67
3.4.2循环队列——队列的顺序表示和实现 72
3.5离散事件模拟 76
第4章 串 84
4.1串类型的定义 84
4.2串的表示和实现 85
4.2.1定长顺序存储结构 85
4.2.2堆分配存储结构 90
4.3串的模式匹配算法 95
4.3.1求子串位置的定位函数Index(S,T,pos) 95
4.3.2模式匹配的一种改进算法 95
第5章 数组 99
5.1数组的顺序表示和实现 99
5.2矩阵的压缩存储 103
第6章 树和二叉树 116
6.1二叉树 116
6.2树和森林 126
6.3赫夫曼树及其应用 135
6.3.1最优二叉树(赫夫曼树) 135
6.3.2赫夫曼编码 135
第7章 图 141
7.1图的存储结构 141
7.1.1数组表示法 141
7.1.2邻接表 155
7.2图的遍历 166
7.2.1深度优先搜索 167
7.2.2广度优先搜索 168
7.3图的连通性问题 174
7.3.1无向图的连通分量和生成树 174
7.3.2最小生成树 177
7.3.3关节点和重连通分量 182
7.4有向无环图及其应用 186
7.4.1拓扑排序 186
7.4.2关键路径 189
7.5最短路径 193
7.5.1从某个源点到其余各顶点的最短路径 193
7.5.2每一对顶点之间的最短路径 197
第8章 查找 205
8.1静态查找表 205
8.1.1顺序表的查找 205
8.1.2有序表的查找 209
8.1.3静态树表的查找 210
8.2动态查找表 213
8.2.1二叉排序树和平衡二叉树 213
8.2.2 B_树和B+树 235
8.2.3键树 243
8.3哈希表 253
8.3.1处理冲突的方法 253
8.3.2哈希表的查找及其分析 253
第9章 内部排序 258
9.1概述 258
9.2插入排序 258
9.2.1直接插入排序 258
9.2.2其他插入排序 261
9.2.3希尔排序 265
9.3快速排序 267
9.4选择排序 270
9.5归并排序 273
9.6基数排序 275
第10章 外部排序 284
10.1外部排序的方法 284
10.2多路平衡归并的实现 286
10.3置换-选择排序 291
第11章 动态存储管理 299
11.1边界标识法 299
11.2伙伴系统 308
参考文献 314