第1章 绪论 1
1.1 主要内容与方法 1
1.1.1 从问题到程序 2
1.1.2 抽象数据类型 2
1.1.3 数据结构 2
1.1.4 算法 3
1.2 简单题 3
1.3 问答题 4
1.4 算法分析题 9
1.5 应用与上机题 12
第2章 线性表 19
2.1 主要内容与方法 19
2.1.1 基本概念与抽象数据类型 19
2.1.2 顺序表示 20
2.1.3 链接表示 21
2.1.4 矩阵与广义表 23
2.2 简单题 24
2.3 问答题 24
2.4 算法题 33
2.5 应用与上机题 56
第3章 字符串 64
3.1 主要内容与方法 64
3.1.1 字符串及其抽象数据类型 64
3.1.2 字符串的表示 65
3.1.3 模式匹配 65
3.2 简单题 67
3.3 问答题 67
3.4 算法题 68
3.5 应用与上机题 78
第4章 栈与队列 86
4.1 主要内容与方法 86
4.1.1 栈及其抽象数据类型 87
4.1.2 栈的实现 87
4.1.3 栈与递归 88
4.1.4 队列及其抽象数据类型 88
4.1.5 队列的实现 89
4.2 简单题 90
4.3 问答题 91
4.4 算法题 97
4.5 应用与上机题 115
第5章 二叉树、树与树林 138
5.1 主要内容与方法 138
5.1.1 二叉树及其抽象数据类型 139
5.1.2 二叉树的周游 139
5.1.3 二叉树的实现 140
5.1.4 二叉树的应用 141
5.1.5 树与树林 142
5.2 简单题 143
5.2.1 是非题 143
5.2.2 选择题 143
5.2.3 填空题 146
5.3 问答题 147
5.3.1 基本概念 147
5.3.2 周游 153
5.3.3 存储表示 158
5.3.4 转换 161
5.3.5 堆与优先队列 164
5.3.6 哈夫曼树 172
5.3.7 表达式树 176
5.4 算法题 178
5.5 应用与上机题 210
第6章 集合与字典 223
6.1 主要内容与方法 223
6.1.1 集合及其抽象数据类型 223
6.1.2 集合的实现 224
6.1.3 字典及其抽象数据类型 225
6.1.4 字典的顺序表示 225
6.1.5 字典的散列表示 226
6.2 简单题 227
6.3 问答题 228
6.4 算法题 247
6.5 应用与上机题 270
第7章 高级字典结构 279
7.1 主要内容与方法 279
7.1.1 字典与索引 279
7.1.2 字符树 279
7.1.3 二叉排序树 280
7.1.4 最佳二叉排序树 280
7.1.5 平衡二叉排序树 280
7.1.6 索引文件 281
7.2 简单题 282
7.3 问答题 283
7.3.1 二叉排序树 283
7.3.2 最佳二叉排序树 286
7.3.3 平衡二叉排序树 288
7.3.4 索引文件 296
7.4 算法题 310
7.5 应用与上机题 315
第8章 排序 321
8.1 主要内容与方法 321
8.2 简单题 322
8.3 问答题 326
8.4 算法题 333
8.5 应用与上机题 352
第9章 图 358
9.1 主要内容与方法 358
9.1.1 基本概念及其抽象数据类型 358
9.1.2 图的周游 359
9.1.3 存储表示 359
9.1.4 最小生成树 360
9.1.5 最短路径 361
9.1.6 拓扑排序与关键路径 361
9.2 简单题 362
9.3 问答题 364
9.3.1 基本概念 364
9.3.2 存储表示 365
9.3.3 周游与生成树 372
9.3.4 最小生成树 375
9.3.5 最短路径 380
9.3.6 拓扑排序与关键路径 385
9.4 算法题 387
9.5 应用与上机题 401
第10章 算法分析与设计 408
10.1 主要内容与方法 408
10.1.1 算法分析技术 408
10.1.2 算法设计技术 409
10.2 简单题 410
10.3 算法分析题 411
10.4 算法设计题 416
10.5 应用与上机题 423
参考文献 429