第1章 概述 1
1.1引言 1
1.2问题的求解过程 2
1.3基本概念 4
1.4数据结构课程内容 7
1.5类C语言和算法分析 8
习题一 12
第2章 顺序表 17
2.1线性表 17
2.2栈和队列 23
习题二 41
第3章 链表 46
3.1单链表 46
3.2链栈和链队 56
3.3循环链表与多重链表 64
习题三 67
第4章 数组和广义表 73
4.1数组的逻辑结构 73
4.2广义表 86
习题四 89
第5章 字符串 93
5.1字符串及其运算 93
5.2字符串的存储表示 94
习题五 103
第6章 树 106
6.1基本术语及性质 106
6.2树的抽象数据类型和树的存储 108
6.3二叉树 112
6.4二叉树的遍历 119
6.5二叉线索树 124
6.6树的遍历 130
6.7树的应用 132
习题六 140
第7章 图 146
7.1基本术语 147
7.2图的存储结构 149
7.3图的遍历和求图的连通分量 157
7.4生成树和最小生成树 161
7.5最短路径 166
7.6拓扑排序 172
7.7关键路径 177
习题七 183
第8章 查找表 188
8.1查找表的基本概念 188
8.2静态查找表的实现 189
8.3动态查找表的实现 197
8.4 Hash(杂凑)法 222
习题八 230
第9章 内排序 235
9.1计数排序 235
9.2直接插入排序 237
9.3折半插入排序 239
9.4冒泡排序 240
9.5希尔排序 241
9.6快速排序 244
9.7简单选择排序 246
9.8堆排序 247
9.9归并排序 252
9.10基数排序 257
9.11总结 262
习题九 262
第10章 外存储设备 269
10.1外存储器 269
10.2基本概念 271
10.3顺序文件 273
10.4索引文件 274
10.5 ISAM文件 276
10.6 VSAM文件 278
10.7直接存取文件 280
10.8链接式文件和多重表文件 281
10.9倒排文件 282
第11章 外排序 284
11.1外排序的主要过程 284
11.2 K路归并 285
11.3缓冲区的并行操作处理 287
11.4初始归并段的产生 289
11.5磁带归并排序 292
第12章 应用示例 299
12.1多重链表的一个实际应用:动态存储管理 299
12.2工程项目中统筹图的建立和分析 305
12.3数据结构在游戏开发中的简单应用 310
附录 上机实验 320
实验一 线性结构的顺序表示 321
实验二 链表 322
实验三 数组和广义表 324
实验四 串 325
实验五 树 326
实验六 图 327
实验七 二叉排序树 328
实验八 排序 329
实验九 综合实验 330
参考文献 332