第1章 绪论 1
1.1 数据结构研究什么 1
1.2 数据结构的发展概况和在计算机科学中的地位 3
1.3 基本概念和术语 4
1.4 数据类型和抽象数据类型 6
1.5 算法和算法分析 7
1.6 小结 11
习题 11
第2章 线性表 12
2.1 线性表的基本概念 12
2.2 顺序存储的线性表 13
2.3 链式存储的线性表 17
2.3.1 单链表 17
2.3.2 循环链表 32
2.3.3 双向链表 33
2.4 广义表 35
2.5 小结 37
习题 38
第3章 楼和队列 40
3.1 栈 40
3.1.1 栈的定义和操作 40
3.1.2 栈的表示和操作的实现 41
3.1.3 栈的应用举例 43
3.2 队列 61
3.2.1 队列定义和操作 61
3.2.2 队列的表示和操作的实现 62
3.2.3 队列的应用举例 65
3.3 两个栈和队列的C语言程序举例 68
3.4 小结 76
习题 76
第4章 串和数组 78
4.1 字符串 78
4.1.1 串的定义和操作 78
4.1.2 串的存储结构和相应的操作 80
4.1.3 正文模式匹配 86
4。1.4 文本编辑 87
4.2 数组 89
4.2.1 数组的定义和操作 89
4.2.2 数组的顺序表示 89
4.2.3 矩阵的压缩存储 90
4.2.4 一个数组应用的C语言程序 98
4.3 小结 101
习题 101
第5章 树与二叉树 102
5.1 树的定义及基本术语 102
5.1.1 树的定义 102
5.1.2 基本术语 103
5.2 二叉树 104
5.2.1 二叉树的性质 104
5.2.2 二叉树的存储结构 106
5.2.3 二叉树的建立 109
5.3.l 二又树的遍历算法 114
5.3 遍历二叉树 114
5.3.2 二又树遍历算法的应用 120
5.4 线索二叉树 127
5.4.1 二叉树的线索化算法 129
5.4.2 线索二叉树的有关操作 131
5.5 二叉排序树(三叉查找树) 135
5.5.1 二又排序树的建立和插入 135
5.5.2 二又排序树的查找 137
5.5.3 二叉排序树的删除 139
5.5.4 平衡二叉树的概念 142
5.6 树和森林 143
5.6.1 树的存储结构 143
5.6.2 树和森林与二叉树的转化 146
5.6.3 树和森林的遍历 148
5.7 哈夫曼树及其应用 151
5.8 小结 157
习题 158
6.1 基本概念和术语 160
第6章 图 160
6.2 图的存储结构 163
6.2.1 邻接矩阵 163
6.2.2 邻接表 165
6.3 图的遍历 168
6.3.1 深度优先搜索遍历 168
6.3.2 广度优先搜索遍历 171
6.4 连通网的最小生成树 172
6.4.1 普里姆(Prim)算法 173
6.4.2 克鲁斯卡尔(Kruskal)算法 177
6.5 最短路径 180
6.5.1 从某个源点到其余各顶点的最短路径 181
6.5.2 每一对顶点间的最短路径 186
6.6 拓扑排序 189
6.7 关键路径 194
6.8 小结 200
习题 200
第7章 排序 203
7.1 内排序 204
7.1.1 内排序的分类 204
7.1.2 插入排序 205
7.1.3 交换排序 211
7.1.4 选择排序 216
7.1.5 合并排序 222
7.1.6 计数排序 229
7.1.7 基数排序 231
7.1.8 各种内排序方法的比较讨论 235
7.2 外排序 237
7.2.1 K路平衡归并 237
7.2.2 置换一选择排序 242
7.2.3 哈夫曼归并树 243
7.2.4 一个利用败者树进行外排序的C语言程序示例 245
7.3 小结 249
习题 250
8.1 查找的基本概念 251
第8章 查找 251
8.2 静态查找表 252
8.3 动态查找表 256
8.3.1 B树 256
8.3.2 B+树 261
8.3.3 一个B+树的C语言实例 265
8.3.4 B树与B+树各种操作的比较 276
8.4 哈希表 277
8.4.1 概述 277
8.4.2 哈希函数 279
8.4.3 处理冲突的方法及相应的造表和有关操作 280
8.4.4 哈希表的查找分析 285
8.5 小结 286
习题 287
第9章 文件 288
9.1 文件的基本概念和文件的存储结构 288
9.2.1 存储在顺序存储器上的顺序文件 290
9.2 顺序文件 290
9.2.2 存储在直接存取存储器上的顺序文件 291
9.2.3 堆文件 292
9.3 索引文件和索引顺序文件 292
9.3.1 索引文件 293
9.3.2 索弓顺序文件 293
9.3.3 对于B树、B十树需要注意的问题 294
9.4.1 文件的组织方式 296
9.4 哈希文件 296
9.4.2 文件的操作 298
9.4.3 文件的扩充 298
9.5 多关键宇文件 299
9.5.1 索引链接文件(多重表文件) 299
9.5.2 倒排文件 301
9.6 小结 302
习题 303
参考书目 304