第一章 导论 1
1.1 引言 1
1.1.1 什么是数据结构 1
1.2 简单的数据结构 2
1.2.1 表和多重链表 2
1.2.2 图 3
1.2.3 二叉树 4
1.2.4 其他数据结构 5
1.3 自上而下的程序设计、模块化和数据结构 5
1.4 这对程序设计者意味着什么? 6
习题 7
2.1 结构和表示方法 8
第二章 N维数组 8
2.1.1 另一种表示方法 9
2.2 与任务相匹配的数据结构 9
2.3 N维数组的实现 10
2.3.1 用BASIC实现N维数组 11
2.4 N维数组的应用 11
2.4.1 样本数据库的结构 12
2.4.2 数据库的实现 12
2.5 自上而下的设计 17
2.6 总结 18
程序设计作业 18
第三章 图 20
3.1 连接 20
3.2 图的结构 21
3.3 实现 22
3.3.1 图和矩阵代数 23
3.3.2 图代数 27
3.4 操作 31
3.4.1 创建一个图 31
3.4.2 遍历 32
3.4.3 路径矩阵 32
3.4.4 其他操作 33
3.5 具体应用 33
3.5.1 数字滤波器 33
3.5.2 连接计算 37
3.6 总结讨论 42
程序设计作业 42
4.1 概念 43
第四章 链接表 43
4.2 单链表 44
4.2.1 建立一个单链表 45
4.2.2 遍历单链表 48
4.2.3 插入和删除 49
4.3 双链表 50
4.4 调度程序 51
4.4.1 BASIC程序 57
4.4.2 Pascal程序 58
4.5 多重链表 58
4.5.1 库存程序:多重链表的应用 60
4.6 总结和讨论 66
程序设计作业 68
5.2 概念和要求 69
第五章 递归 69
5.1 流程结构 69
5.3 应用准则 71
5.4 实例 72
5.4.1 单链表 72
5.4.2 对半查找 73
5.4.3 中序表 76
5.4.4 中序排序程序 77
5.5 总结 83
程序设计作业 83
第六章 二叉树 85
6.1 基本结构 85
6.1.1 定义 86
6.2.1 形状 87
6.2 一般应用 87
6.2.2 搜索 89
6.2.3 遍历转换 90
6.3 有序二叉树的操作 91
6.3.1 构造有序二叉树 91
6.3.2 搜索二叉树 97
6.3.3 遍历二叉树 100
6.4 应用 105
6.4.1 模式匹配 105
6.4.2 平衡树 110
6.4.3 代数表示法的转换 115
6.5 总结和结论 119
程序设计作业 120
7.1 多分支树的基本特性和应用 121
第七章 多分支树和森林 121
7.2.1 构造三叉树 122
7.2 构造多分支树 122
7.2.2 构造多分支树 127
7.3 多分支树的遍历 131
7.4 搜索多分支树 131
7.5 模式匹配 132
7.6 应用 134
7.6.1 拼法检查程序 134
7.6.2 符号等式检查程序 140
7.7 森林 144
7.8 总结 146
程序设计作业 147
8.1.1 概念 148
8.1.2 应用 148
第八章 堆栈和集合 148
8.1 堆栈 148
8.1.3 堆栈运算 150
8.1.4 作用域检查—应用实例 154
8.1.5 新运算符的执行—应用实例 158
8.2 集合 166
8.2.1 集合运算 166
8.2.2 应用实例 167
8.3 总结 174
8.4 结束语 175
程序设计作业 175