第二版前言 1
第一版前言 1
第1章 绪论 1
教学要求 1
1.1 引言 1
1.2 数据结构的发展简史及其在计算机科学中所处的地位 1
序 1
1.3 数据结构的概念 2
1.4 基本概念和术语 3
1.5.2 算法的描述 5
1.5 算法和算法的描述 5
1.5.1 算法 5
1.5.3 算法评价 8
1.6 实训 9
本章小结 10
习题一 11
第2章 线性表 12
教学要求 12
2.1 线性表的逻辑结构 12
2.2 线性表的顺序存储结构 13
2.2.2 线性表在顺序存储结构下的运算 14
2.2.1 线性表的顺序存储结构 14
2.3 线性表的链式存储结构 18
2.3.1 线性链表 18
2.3.2 循环链表 25
2.3.3 双向链表 26
2.4 一元多项式的表示及相加 29
2.5 实训 31
本章小结 35
习题二 36
3.1.1 栈的定义及其运算 38
3.1 栈 38
教学要求 38
第3章 栈和队列 38
3.1.2 栈的顺序存储结构 39
3.1.3 多栈共享邻接空间 41
3.1.4 栈的链式存储结构 42
3.2 算术表达式求值 44
3.3 队列 48
3.3.1 队列的定义及其运算 49
3.3.2 队列的顺序存储结构 49
3.3.3 队列的链式存储结构 53
3.3.4 其他队列 55
3.4 实训 55
本章小结 63
习题三 64
第4章 串 65
教学要求 65
4.1 串的基本概念 65
4.1.1 串的定义 65
4.1.2 主串和子串 65
4.2 串的存储结构 65
4.2.1 串值的存储 66
4.2.2 串名的存储映像 68
4.3.2 串的基本运算及其实现 69
4.3.1 串的基本运算 69
4.3 串的基本运算及其实现 69
4.4 文本编辑 71
4.5 实训 73
本章小结 81
习题四 82
第5章 数组和广义表 83
教学要求 83
5.1 数组 83
5.1.1 数组的概念 83
5.2.1 一维数组的存储 84
5.2 数组的存储结构 84
5.1.2 数组在计算机内的存放 84
5.2.2 二维数组的存储 85
5.2.3 多维数组的存储 86
5.3 特殊矩阵及其压缩存储 86
5.3.1 特殊矩阵 86
5.3.2 压缩存储 87
5.4 稀疏矩阵 89
5.4.1 稀疏矩阵的存储 89
5.4.2 稀疏矩阵的运算 92
5.5.1 基本概念 102
5.5 广义表 102
5.5.2 存储结构 103
5.5.3 基本运算 104
5.6 实训 108
本章小结 113
习题五 113
第6章 树 115
教学要求 115
6.1 树的基本概念 115
6.1.1 树的定义及相关术语 115
6.1.2 树的表示 116
6.1.3 树的基本操作 117
6.2.1 二叉树的定义与基本操作 118
6.2 二叉树 118
6.2.2 二叉树的性质 120
6.2.3 二叉树的存储结构 121
6.3 遍历二叉树 123
6.3.1 先序遍历 123
6.3.2 中序遍历 124
6.3.3 后序遍历 125
6.3.4 层次遍历 126
6.3.5 遍历算法的应用 126
6.4 线索二叉树 127
6.4.1 中序次序线索化算法 129
6.4.2 在中根线索树上检索某结点的前驱算法 130
6.4.3 在中根线索树上检索某结点的后继算法 130
6.5 二叉排序树 131
6.5.1 二叉排序树的定义 131
6.5.2 二叉排序树的生成 131
6.5.3 删除二叉排序树上的结点 132
6.6 树和森林 134
6.6.1 树的存储结构 134
6.6.2 树、森林与二叉树的转换 137
6.6.3 树和森林的遍历 140
6.7.1 哈夫曼树的定义 141
6.7 哈夫曼树和哈夫曼算法 141
6.7.2 构造哈夫曼树——哈夫曼算法 143
6.7.3 哈夫曼树的应用 143
6.8 实训 145
本章小结 153
习题六 154
第7章 图 155
教学要求 155
7.1 图的基本概念 155
7.1.1 图的定义和术语 155
7.1.2 图的基本操作 158
7.2.1 邻接矩阵 159
7.2 图的存储结构 159
7.2.2 邻接表 160
7.3 图的遍历 163
7.3.1 深度优先搜索遍历 163
7.3.2 广度优先搜索遍历 166
7.4 图的生成树和最小生成树 168
7.4.1 生成树的概念 168
7.4.2 普里姆算法 170
7.4.3 克鲁斯卡尔算法 174
7.5 最短路径 175
7.5.1 单源点最短路径 176
7.5.2 所有顶点对之间的最短路径 178
7.6 拓扑排序 181
7.7 实训 183
本章小结 187
习题七 189
第8章 查找 190
教学要求 190
8.1 顺序查找 190
8.2 折半查找 191
8.3 分块查找 193
8.4 哈希法 194
8.4.2 哈希函数的构造方法 195
8.4.1 哈希表和哈希函数的概念 195
8.4.3 冲突处理 196
8.5 实训 199
本章小结 200
习题八 201
第9章 排序 202
教学要求 202
9.1 插入排序 202
9.1.1 线性插入排序 202
9.1.2 折半插入排序 203
9.2 希尔排序 204
9.3 选择排序 206
9.4 堆排序 208
9.5 快速排序 211
9.6 归并排序 214
9.7 基数排序 216
9.8 外部排序 217
9.9 各种排序方法的比较 218
9.10 实训 219
本章小结 221
习题九 221
教学要求 222
10.1 文件的基本概念 222
第10章 文件 222
10.2 顺序文件 223
10.3 索引文件 225
10.4 索引顺序文件 226
10.5 直接存取文件 229
10.6 多关键字文件 230
10.6.1 多重表文件 230
10.6.2 倒排文件 231
10.7 实训 231
本章小结 232
习题十 233
参考文献 234