目录 1
序言 1
第一章 基本数据结构 7
1.1 引言 7
1.2 数据类型的概念 10
1.3 基本数据类型 13
1.4 标准基本类型 14
1.5 子域类型 17
1.6 数组结构 18
1.7 记录结构 23
1.8 记录结构的变体 28
1.9 集合结构 31
1.10 数组、记录和集合结构的表示法 37
1.10.1 数组的表示法 38
1.10.2 记录结构的表示法 40
1.10.3 集合的表示法 41
1.11 顺序文件结构 43
1.11.1 基本文件运算符 45
1.11.2 具有子结构的文件 48
1.11.3 正文 50
1.11.4 一个文件编辑程序 60
2.1 引言 67
第二章 分类 67
2.2 数组分类 69
2.2.1 直接插入分类 70
2.2.2 直接选择分类 74
2.2.3 直接交换分类 76
2.2.4 步长递减的插入分类 80
2.2.5 树分类 83
2.2.6 划分分类 89
2.2.7 寻找中项 96
2.2.8 各种数组分类方法的比较 99
2.3.1 直接归并 101
2.3 顺序文件的分类 101
2.3.2 自然归并 108
2.3.3 均衡多路归并 116
2.3.4 多步分类 123
2.3.5 初始序串的分配 136
第三章 递归算法 146
3.1 引言 146
3.2 不用递归的情况 148
3.3 递归过程两例 152
3.4 回溯算法 159
3.5 八皇后问题 166
3.6 稳定婚姻问题 172
3.7 优选问题 180
第四章 动态信息结构 188
4.1 递归数据结构 188
4.2 指针或引用 191
4.3 线性表 196
4.3.1 基本运算 196
4.3.2 有序表和重组表 200
4.3.3 一个应用问题:拓扑分类 209
4.4.1 基本概念和定义 217
4.4 树结构 217
4.4.2 二叉树上的基本运算 226
4.4.3 树检索与插入 230
4.4.4 树删除 241
4.4.5 树检索与插入的分析 242
4.4.6 均衡树 246
4.4.7 均衡树插入 248
4.4.8 均衡树删除 254
4.4.9 优化检索树 260
4.4.10 显示一棵树的结构 266
4.5 多元树 279
4.5.1 B树 282
4.5.2 二叉B树 296
4.6 键变换 305
4.6.1 变换函数的选择 306
4.6.2 冲突处理 307
4.6.3 键变换的分析 313
第五章 语言结构与编译程序 322
5.1 语言定义与结构 322
5.2 句子分析 325
5.3 构造语法图 330
5.4 为给定语法构造分析程序 334
5.5 构造表驱动分析程序 338
5.6 将BNF变成分析-驱动数据结构的翻译程序 342
5.7 程序设计语言PL/0 352
5.8 一个PL/0分析程序 356
5.9 语法错误校正 367
5.10 PL/0处理机 382
5.11 代码生成 385
附录A ASCII字符集 408
附录B Pascal语法图 409
索引 415
程序索引 425