第1章 数据结构基础 1
1.1面式思维和点式思维 1
1.2数据结构背景 2
1.3数据结构的应用案例 4
1.4数据结构基本概念 6
1.5逻辑结构分类 7
1.6存储结构分类 7
1.7数据结构基本操作 9
1.8算法和算法效率分析基础 10
1.9对象的设计 13
1.10 C++语言常见知识点复习系统程序构建 15
1.11本章总结 27
习题 27
第2章 递归思想与程序构建 31
2.1引言 31
2.2简单递归思想 32
2.3复杂递归思想 36
2.4递归思想应用的程序构建 38
2.5本章总结 42
习题 42
第3章 线性表的构造与应用 44
3.1引言 44
3.2线性表的逻辑结构 44
3.3线性表的顺序存储 46
3.4线性表的链接存储 54
3.5线性表链接存储的变形 61
3.6线性表的静态链表实现 62
3.7线性表的应用案例 68
3.8线性表应用的程序构建 68
3.9本章总结 81
习题 82
第4章 排序程序设计初步 86
4.1引言 86
4.2排序操作的基本概念 86
4.3基本排序算法设计 87
4.3.1排序算法设计基础 87
4.3.2直接插入排序 88
4.3.3简单选择排序 89
4.3.4冒泡排序 89
4.3.5静态链表插入排序 90
4.4基本排序程序设计实现 91
4.5排序的应用案例 96
4.6基本排序应用的程序构建 97
4.7本章总结 104
习题 104
第5章 栈的构造与应用 106
5.1引言 106
5.2栈的逻辑结构 106
5.3栈的顺序存储 107
5.4栈的链接存储 111
5.5栈的应用案例 115
5.6栈应用的程序构建 116
5.7本章总结 118
习题 119
第6章 队列的构造与应用 124
6.1引言 124
6.2队列的逻辑结构 124
6.3队列的顺序存储 125
6.4队列的环状顺序存储 126
6.5队列的链接存储 129
6.6队列的应用案例 132
6.7队列应用的程序构建 133
6.8本章总结 136
习题 136
第7章 串的构造与应用 138
7.1引言 138
7.2串的逻辑结构 138
7.3串的顺序存储 141
7.4串的链接存储 146
7.5串的索引存储 146
7.6串的应用案例 156
7.7串应用的程序构建 156
7.8本章总结 159
习题 160
第8章 二维数组的构造与应用 161
8.1引言 161
8.2二维数组的逻辑结构 161
8.3二维数组的顺序存储 162
8.4特殊矩阵的压缩存储 163
8.5稀疏矩阵的压缩存储 165
8.6稀疏矩阵的十字链表存储 175
8.7二维数组的应用案例 176
8.8程序设计案例小型游戏推箱子软件 179
8.9本章总结 188
习题 188
第9章 广义表的构造与应用 190
9.1引言 190
9.2广义表的逻辑结构 190
9.3广义表的链接存储 193
9.4表结构的应用案例 195
9.5广义表应用的程序构建 197
9.6本章总结 200
习题 201
第10章 树和森林的构造与应用 202
10.1引言 202
10.2树的逻辑结构 202
10.3树的顺序存储 205
10.4树的链接存储 206
10.5树的顺序和链接联合存储法 206
10.6树的应用案例 208
10.7本章总结 209
习题 210
第11章 二叉树的构造与应用 211
11.1引言 211
11.2二叉树的逻辑结构 211
11.3二叉树的顺序存储 213
11.4二叉树的链接存储 214
11.5二叉树的根序遍历和程序设计 215
11.5.1根序遍历的定义和递归算法实现 215
11.5.2根序遍历的非递归算法实现 216
11.6二叉树的层次遍历和程序设计 219
11.7二叉树其他相关程序构建 221
11.8线索二叉树 233
11.8.1线索二叉树的定义、逻辑结构及存储结构 233
11.8.2线索二叉树的算法设计 234
11.9二叉树的应用案例 240
11.10树、森林和二叉树的关系 244
11.11二叉树应用的程序构建 245
11.12本章总结 253
习题 253
第12章 图的构造与应用 257
12.1引言 257
12.2图的逻辑结构 257
12.3图的顺序存储 261
12.4图的链接存储 268
12.5遍历操作的程序设计 274
12.6公路网最短路径的研究 278
12.7 AOV网与拓扑排序的研究 284
12.8图应用的程序构建 288
12.8.1最小生成树的定义 294
12.8.2构造最小生成树的Prim算法 295
12.8.3构造最小生成树的Kruskal算法 299
12.9本章总结 303
习题 304
第13章 查找程序设计 307
13.1引言 307
13.2查找的基本概念 307
13.3基于静态数据结构的查找 308
13.3.1静态查找表与顺序查找 308
13.3.2有序表的折半查找 311
13.3.3有序表的斐波那契查找和插值查找 313
13.3.4分块查找 314
13.4基于动态数据结构的查找 315
13.4.1二叉排序树与相应的查找技术 315
13.4.2平衡二叉树 316
13.5基于哈希表结构的查找 317
13.5.1哈希表的定义和构成 317
13.5.2常见的哈希函数 318
13.5.3哈希表的查找过程和冲突解决方法 320
13.6基于字符串结构的快速查找 325
13.7查找的应用案例 329
13.8查找应用的程序构建 330
13.9本章总结 333
习题 333
第14章 排序程序设计进阶 335
14.1引言 335
14.2折半插入排序技术 335
14.3希尔排序技术 336
14.4快速排序技术 337
14.5树形选择排序技术 338
14.6堆排序技术 338
14.7归并排序技术 341
14.8基数排序技术 341
14.9复杂排序程序设计实现 346
14.10复杂排序应用的程序构建 351
14.11本章总结 355
习题 355
第15章 文件结构初步 357
15.1引言 357
15.2文件的逻辑结构 357
15.3顺序文件 359
15.4索引文件 360
15.5索引顺序存取方法文件 362
15.6虚拟存储存取方法文件 363
15.7直接存取文件(散列文件) 365
15.8多重表文件和倒排文件 366
15.9文件的应用案例 368
15.10文件应用的程序构建 368
15.11本章总结 376
习题 376
参考文献 378