1 绪论 1
1.1 数据结构的基本概念和术语 1
1.2 算法及算法分析 7
习题 14
2 线性表 16
2.1 线性表的定义和抽象数据类型 16
2.2 线性表的顺序存储 19
2.3 线性表的链式存储结构 24
2.4 顺序表和链表的综合比较 36
习题 37
3 栈和队列 39
3.1 栈 39
3.2 栈与递归 49
3.3 队列 53
3.4 离散事件模拟 58
习题 61
4 串 63
4.1 串的概念及其抽象数据类型 63
4.2 串的存储结构 65
4.3 串的基本运算的实现 73
4.4 文本编辑 75
习题 76
5 数组与广义表 77
5.1 数组的定义及其基本操作 77
5.2 数组的存储结构 79
5.3 矩阵的压缩存储 81
5.4 广义表 89
5.5 数组的应用 93
习题 98
6 树 100
6.1 树 100
6.2 二叉树 107
6.3 二叉树的遍历 113
6.4 线索二叉树 123
6.5 二叉树的应用——哈夫曼树 127
6.6 树、森林与二叉树的转换 134
6.7 树和森林的遍历 137
6.8 树的应用 138
习题 141
7 图 144
7.1 图的基本概念 144
7.2 图的存储结构 148
7.3 图的遍历 154
7.4 最小生成树 158
7.5 最短路径 162
7.6 AOV网与拓扑排序 167
7.7 AOE网与关键路径 171
习题 175
8 查找 179
8.1 基本概念 179
8.2 顺序表查找 180
8.3 树表的查找 187
8.4 哈希表的查找 202
习题 210
9 排序 212
9.1 排序的基本概念 212
9.2 插入排序 213
9.3 选择排序 217
9.4 交换排序 223
9.5 归并排序 228
9.6 基数排序 230
9.7 各种内部排序方法的比较讨论 232
习题 233
10 文件 235
10.1 文件的基本概念 235
10.2 文件组织 238
10.3 多关键字文件 246
习题 247
参考文献 248