第1章 数据结构基础 1
1.1 面式思维和点式思维 1
1.2 数据结构背景 2
1.3 数据结构的应用案例 3
1.4 数据结构基本概念 4
1.5 逻辑结构分类 5
1.6 存储结构分类 6
1.7 数据结构基本操作 7
1.8 算法和算法效率分析基础 8
1.9 递归的概念和应用 11
1.10 本章总结 17
习题 17
第2章 线性表的构造与应用 21
2.1 引言 21
2.2 线性表的逻辑结构 21
2.3 线性表的顺序存储 23
2.4 线性表的链接存储 31
2.5 线性表链接存储的变形 39
2.6 线性表存储结构实现的选择标准 42
2.7 线性表的应用案例 43
2.8 本章总结 44
习题 44
第3章 查找与排序程序设计初步 48
3.1 引言 48
3.2 查找的基本概念 48
3.3 顺序查找技术 49
3.4 排序基础和基本概念 52
3.5 基本排序算法设计 54
3.5.1 排序算法设计基础 54
3.5.2 直接插入排序 57
3.5.3 简单选择排序 58
3.5.4 冒泡排序 60
3.5.5 单链表插入排序 61
3.6 排序的应用案例 62
3.7 本章总结 62
习题 63
第4章 栈的构造与应用 64
4.1 引言 64
4.2 栈的逻辑结构 64
4.3 栈的顺序存储 65
4.4 栈的链接存储 72
4.5 栈的应用案例 75
4.6 本章总结 76
习题 76
第5章 队列的构造与应用 82
5.1 引言 82
5.2 队列的逻辑结构 82
5.3 队列的顺序存储 83
5.4 队列的环状顺序存储 84
5.5 队列的链接存储 87
5.6 队列的应用案例 89
5.7 本章总结 90
习题 90
第6章 串的构造与应用 92
6.1 引言 92
6.2 串的逻辑结构 92
6.3 串的顺序存储 95
6.4 串的链接存储 100
6.5 串的索引存储 100
6.6 串的应用案例 110
6.7 本章总结 110
习题 110
第7章 二维数组和广义表的构造与应用 112
7.1 引言 112
7.2 二维数组的逻辑结构 112
7.3 二维数组的顺序存储 113
7.4 特殊矩阵的压缩存储 114
7.5 稀疏矩阵的压缩存储 116
7.6 稀疏矩阵的十字链表存储 124
7.7 二维数组的应用案例与程序设计 126
7.8 广义表简介 133
7.9 二维码简介 138
7.10 本章总结 138
习题 138
第8章 二叉树、树和森林的构造与应用 140
8.1 引言 140
8.2 二叉树及其逻辑结构 146
8.3 二叉树的顺序存储 148
8.4 二叉树的链接存储 149
8.5 二叉树的构建和数据显示 150
8.6 二叉树的根序遍历 157
8.6.1 根序遍历的定义和递归算法实现 157
8.6.2 根序遍历的非递归算法实现 159
8.7 二叉树的层次遍历 162
8.8 线索二叉树 164
8.8.1 线索二叉树的定义、逻辑结构及存储结构 164
8.8.2 线索二叉树的算法设计 165
8.9 最优二叉树 168
8.10 树、森林和二叉树的关系 175
8.11 本章总结 176
习题 176
第9章 图的构造与应用 179
9.1 引言 179
9.2 图的逻辑结构 179
9.3 图的顺序存储 183
9.4 图的链接存储 188
9.5 遍历操作的程序设计 194
9.6 公路网最短路径的研究 201
9.7 AOV网与拓扑排序 205
9.8 最小代价生成树的研究 209
9.8.1 最小生成树的定义 209
9.8.2 构造最小生成树的Prim算法 212
9.8.3 构造最小生成树的Kruskal算法 216
9.9 本章总结 221
习题 221
第10章 查找程序设计进阶 224
10.1 引言 224
10.2 有序表的折半查找和其他变形 224
10.2.1 有序表的折半查找 224
10.2.2 有序表的斐波那契查找和插值查找 225
10.2.3 分块查找 229
10.3 二叉排序树与相应的查找技术 229
10.4 平衡二叉树与相应的查找技术 230
10.5 哈希表结构的查找技术 234
10.5.1 哈希表的定义和构成 234
10.5.2 常见的哈希函数 236
10.5.3 哈希表的查找过程和冲突解决方法 237
10.6 字符串结构的快速查找 242
10.7 查找的应用案例 248
10.8 本章总结 249
习题 249
第11章 排序程序设计进阶 251
11.1 引言 251
11.2 折半插入排序技术 254
11.3 希尔排序技术 255
11.4 快速排序技术 257
11.5 树形选择排序技术 260
11.6 堆排序技术 261
11.7 归并排序技术 264
11.8 基数排序技术 266
11.9 本章总结 271
习题 271
第12章 文件结构 273
12.1 引言 273
12.2 文件的逻辑结构 273
12.3 顺序文件 275
12.4 索引文件 276
12.5 索引顺序存取方法文件 278
12.6 虚拟存储存取方法文件 279
12.7 直接存取文件 281
12.8 多重表文件 282
12.9 倒排文件 283
12.10 文件的应用案例 284
12.11 歌曲文件的数据结构 284
12.12 本章总结 287
习题 287
附录 数据结构程序设计源码涉及英语词汇或变量名中英对照表 289
参考文献 296