第1章 概论 1
1.1 数据结构基本概念 1
1.2 抽象数据类型 3
1.3 算法和算法分析 4
1.3.1 算法 4
1.3.2 算法的设计目标 5
1.3.3 算法效率的度量 6
小结 10
习题1 10
第2章 线性表 12
2.1 线性表的基本概念 12
2.1.1 线性表的定义 12
2.1.2 线性表的抽象数据类型 12
2.2 线性表的顺序表示及实现 13
2.2.1 线性表的顺序存储结构 13
2.2.2 顺序表操作的实现 14
2.2.3 顺序表操作的效率分析 16
2.3 线性表的链式表示及实现 17
2.3.1 单链表 17
2.3.2 循环链表 21
2.3.3 双向链表 21
2.4 线性表的应用 24
小结 29
习题2 30
第3章 栈和队列 31
3.1 栈 31
3.1.1 栈的基本概念 31
3.1.2 栈的表示与实现 32
3.1.3 栈的应用 36
3.2 栈与递归的实现 44
3.3 队列 47
3.3.1 队列的基本概念 47
3.3.2 顺序循环队列的表示与实现 48
3.3.3 链式队列的表示与实现 51
3.3.4 队列的应用 53
小结 58
习题3 58
第4章 串 60
4.1 串的基本概念 60
4.1.1 串的定义 60
4.1.2 串的抽象数据类型 61
4.2 串的表示与实现 62
4.2.1 串的存储结构 62
4.2.2 串基本操作的实现 65
4.3 串的模式匹配算法实现 70
4.3.1 串的朴素模式匹配算法 70
4.3.2 改进的模式匹配算法 72
4.4 串的应用 74
4.4.1 文本编辑 74
4.4.2 建立词索引表 81
小结 82
习题4 82
第5章 数组与广义表 83
5.1 数组 83
5.1.1 数组定义 83
5.1.2 数组的顺序表示与实现 84
5.2 矩阵的压缩存储 86
5.2.1 特殊矩阵 86
5.2.2 稀疏矩阵 87
5.3 广义表的基本概念 93
5.3.1 广义表定义 93
5.3.2 广义表存储结构 95
5.4 广义表的算法实现 96
5.5 广义表应用举例——m元多项式的表示 99
小结 100
习题5 100
第6章 树和二叉树 102
6.1 树 102
6.1.1 树的定义及概念 102
6.1.2 树的表示 104
6.1.3 树的存储结构 104
6.2 二叉树 106
6.2.1 二叉树定义 107
6.2.2 二叉树的性质 108
6.2.3 二叉树的存储结构 110
6.2.4 遍历二叉树 111
6.2.5 线索二叉树 114
6.3 树和森林 115
6.3.1 树与二叉树的转换 116
6.3.2 森林与二叉树的转换 117
6.3.3 树和森林的遍历 118
6.4 哈夫曼及其应用 118
6.4.1 哈夫曼树 119
6.4.2 哈夫曼编码 120
小结 122
习题6 122
第7章 图 124
7.1 图的基本概念 124
7.2 图的存储结构 126
7.2.1 数组表示 127
7.2.2 邻接表 128
7.2.3 十字链表 129
7.2.4 邻接多重表 130
7.3 图的遍历 132
7.3.1 深度优先搜索算法及实现 132
7.3.2 广度优先搜索算法及实现 134
7.4 图的应用 136
7.4.1 最小生成树 136
7.4.2 AOV网和拓扑排序 139
7.4.3 AOE网和拓扑排序 142
7.4.4 最短路径 144
小结 148
习题7 148
第8章 查找 150
8.1 查找的基本概念 150
8.2 静态查找表 151
8.2.1 顺序表 151
8.2.2 有序表 153
8.2.3 索引表 155
8.3 动态查找 157
8.3.1 二叉排序树 157
8.3.2 B-树和B+树 160
8.3.3 键树 161
8.4 哈希表(散列表) 163
8.4.1 哈希表的基本概念 163
8.4.2 哈希函数的构造方法 163
8.4.3 哈希冲突解决方法 164
8.4.4 哈希表的查找及其分析 165
8.4.5 哈希表的设计举例 166
小结 169
习题8 169
第9章 排序 171
9.1 排序的基本概念 171
9.2 插入排序 172
9.2.1 直接插入排序 172
9.2.2 希尔排序 173
9.3 选择排序 176
9.3.1 直接选择排序 176
9.3.2 堆排序 177
9.4 交换排序 180
9.4.1 冒泡排序 181
9.4.2 快速排序 182
9.5 归并排序 184
9.6 基数排序 186
9.6.1 多关键字排序 186
9.6.2 链式基数排序 187
9.7 各种内部排序方法的比较 188
9.8 外部排序 190
9.8.1 外存信息的存取 190
9.8.2 外部排序的方法 191
9.8.3 多路平衡归并的实现 192
9.8.4 置换—选择排序 193
9.8.5 最佳归并树 194
小结 196
习题9 197
第10章 文件 198
10.1 文件基本概念 198
10.1.1 文件记录与文件结构 198
10.1.2 文件的基本操作 199
10.2 文件的存储结构 200
10.2.1 顺序文件 200
10.2.2 索引文件 200
10.2.3 ISAM文件 201
10.2.4 VSAM文件 201
10.2.5 散列文件 203
10.2.6 多关键字文件 203
小结 205
习题10 205
参考文献 207