第一篇 习题解析 2
第1章 绪论习题解析 2
第2章 线性表习题解析 8
第3章 栈和队列习题解析 16
第4章 串习题解析 26
第5章 数组与广义表习题解析 35
第6章 树与二叉树习题解析 47
第7章 图习题解析 68
第8章 查找习题解析 91
第9章 排序习题解析 110
第二篇 算法上机实现 131
第10章 线性表算法上机实现 131
10.1 顺序表基本运算 131
10.2 在表头插入生成单链表 133
10.3 在表尾插入生成单链表 134
10.4 单链表基本运算 135
10.5 双向链表基本运算 138
10.6 静态链表 141
10.7 例2.1算法实现 143
10.8 例2.2算法实现 144
10.9 例2.3算法实现 146
10.10 例2.4算法实现 147
10.11 例2.5算法实现 149
第11章 栈和队列算法上机实现 151
11.1 顺序栈基本运算 151
11.2 链栈基本运算 153
11.3 循环队列基本运算 156
11.4 链队列基本运算 157
11.5 例3.1算法实现 159
11.6 例3.5算法实现 162
第12章 串算法上机实现 165
12.1 顺序串基本运算 165
12.2 生成链串与求串长、串连接运算 167
12.3 链串中求子串运算 169
12.4 链串中串插入运算 170
12.5 串的简单模式匹配 172
12.6 串的无回溯KMP匹配 173
第13章 数组与广义表算法上机实现 176
13.1 矩阵转置 176
13.2 矩阵的快速转置 178
13.3 稀疏矩阵的十字链表存储 180
13.4 生成广义表及求广义表长度和深度的运算 183
第14章 树与二叉树算法上机实现 187
14.1 二叉树的遍历 187
14.2 二叉树的非递归遍历 189
14.3 另一种后序非递归遍历二叉树的方法 191
14.4 按层次遍历二叉树 193
14.5 由二叉树的遍历序列恢复二叉树 195
14.6 二叉树遍历的应用 197
14.7 中序线索二叉树 199
14.8 哈夫曼树及哈夫曼编码 202
14.9 例6.4算法实现 206
第15章 图算法上机实现 209
15.1 建立无向图的邻接矩阵 209
15.2 图的深度优先搜索 210
15.3 图的广度优先搜索 212
15.4 图的连通性 215
15.5 深度优先生成树 218
15.6 广度优先生成树 220
15.7 最小生成树的Prim算法 223
15.8 最小生成树的Kruskal算法 224
15.9 单源点最短路径的Dijkstra算法 226
15.10 每对顶点间最短路径的Floyd算法 228
15.11 拓扑排序 230
15.12 关键路径 232
第16章 查找算法上机实现 238
16.1 顺序查找 238
16.2 折半(二分)查找 239
16.3 分块查找 240
16.4 二叉排序树建立、节点的查找和删除 241
16.5 平衡二叉树的建立、节点的查找和删除 245
16.6 哈希(Hash)查找 251
第17章 排序算法上机实现 255
17.1 插入排序 255
17.2 折半插入排序 256
17.3 希尔(Shell)排序 257
17.4 冒泡排序 258
17.5 双向冒泡排序 259
17.6 快速排序 261
17.7 选择排序 262
17.8 双向选择排序 263
17.9 堆排序 264
17.10 归并排序的递归算法实现 266
17.11 归并排序的非递归算法实现 267
17.12 基数排序 269
参考文献 272