专题1 数据结构分类与抽象数据类型 1
1.1 数据结构分类 1
1.2 抽象数据类型 5
专题2 集合结构与运算 11
2.1 集合结构的定义 11
2.2 集合结构的抽象数据类型 11
2.3 运算举例 12
2.4 集合结构的顺序存储结构和操作实现 14
2.5 集合结构的链接存储结构和操作实现 24
专题3 线性表定义与运算 35
3.1 线性表的定义 35
3.2 线性表的抽象数据类型 36
3.3 线性表的顺序存储结构和操作实现 37
3.4 线性表的链接存储结构和操作实现 48
3.5 线性表的其他链接存储结构 58
3.6 线性表应用举例——多项式计算 60
专题4 栈的定义与运算 69
4.1 栈的定义 69
4.2 栈的抽象数据类型 69
4.3 栈的顺序存储结构和操作实现 70
4.4 栈的链接存储结构和操作实现 75
4.5 栈的应用举例 77
专题5 栈与递归 96
专题6 队列定义与运算 112
6.1 队列的定义 112
6.2 队列的抽象数据类型 112
6.3 队列的顺序存储结构和操作实现 113
6.4 队列的链接存储结构和操作实现 117
6.5 使用队列的程序举例 120
6.6 队列应用举例 123
专题7 树和二叉树的概念 130
7.1 树的概念 130
7.1.1 树的定义 130
7.1.2 树的表示 132
7.1.3 树的基本术语 133
7.1.4 树的性质 134
7.2 二叉树的概念 135
7.2.1 二叉树的定义 135
7.2.2 二叉树的性质 137
7.3.1 二叉树的抽象数据类型 139
7.3.2 二叉树的存储结构 139
7.3 二叉树的抽象数据类型和存储结构 139
7.4 树的抽象数据类型和存储结构 141
7.4.1 树的抽象数据类型 141
7.4.2 树的存储结构 142
专题8 二叉树和树的运算 144
8.1 二叉树的遍历运算 144
8.2 二叉树的其他运算 150
8.3 树的运算 156
专题9 常用二叉树 165
9.1 二叉搜索树 165
9.1.1 二叉搜索树的定义 165
9.1.2 二叉搜索树的运算 166
9.2 堆 172
9.2.1 堆的定义 172
9.2.2 堆的抽象数据类型 173
9.2.3 堆的存储结构 174
9.2.4 堆的运算 175
9.3 哈夫曼树 181
9.3.1 基本术语 181
9.3.2 构造哈夫曼树 182
9.3.3 哈夫曼编码 186
专题10 图的概念、存储结构与遍历 189
10.1 图的概念 189
10.2 图的存储结构 192
10.2.1 邻接矩阵 192
10.2.2 邻接表 194
10.2.3 边集数组 197
10.3 图的遍历 198
10.3.1 深度优先搜索遍历 199
10.3.2 广度优先搜索遍历 202
10.3.3 非连通图的遍历 205
专题11 图的生成树与最短路径 206
11.1 图的生成树 206
11.1.1 普里姆算法求图的最小生成树 207
11.1.2 克鲁斯卡尔算法求图的最小生成树 211
11.2 最短路径 215
11.2.1 求图中一顶点到其余各项点的最短路径 216
11.2.2 求图中每对顶点之间的最短路径 220
专题12 图的拓扑排序与关键路径 224
12.1 拓扑排序 224
12.2 关键路径 231
13.1 查找的基本概念 239
专题13 查找 239
13.2 二分查找 240
13.3 索引查找 242
13.3.1 索引的概念 242
13.3.2 索引查找算法 246
13.3.3 分块查找 252
13.4 散列查找 254
13.4.1 散列的概念 254
13.4.2 散列函数 256
13.4.3 处理冲突的方法 258
13.4.4 散列表的运算 261
专题14 B树 267
14.1 B_树的定义 267
14.3 B_树查找 269
14.2 B_树的抽象数据类型 269
14.4 B_树的插入 271
14.5 B_树的删除 273
14.6 B_树的其他运算 276
14.7 B+树简介 277
专题15 排序 279
15.1 堆排序 279
15.2 快速排序 283
15.3 归并排序 287
15.4 利用归并排序方法排序外存文件 290
附录A 综合练习题 298
附录B 综合练习题参考解答 339
附录C 自测试卷及参考答案 367
附录D 参考书目 372