目录
第1章概论1
1.1什么是数据结构1
1.2数据结构的基本概念和术语3
1.3抽象数据类型及其表示与实现6
1.4算法和算法分析8
1.4.1什么是算法8
1.4.2算法的设计要求9
1.4.3算法时间性能分析9
1.4.4算法空间性能分析14
1.5类C语言描述15
小结17
习题18
实验题20第2章线性表23
2.1线性表的类型定义23
2.1.1线性表的定义23
2.1.2线性表的抽象数据类型24
2.2线性表的顺序存储结构及实现25
2.2.1线性表的顺序表示25
2.2.2顺序表上基本运算的实现26
2.2.3顺序表的算法举例31
2.3线性表的链式存储结构及实现31
2.3.1单链表的表示31
2.3.2单链表操作的实现33
2.3.3链表的算法举例39
2.3.4循环链表402.3.5双向链表41
2.3.6静态链表43
2.4线性表实现方法的比较46
2.5线性表的应用举例47
2.5.1一元多项式的表示47
2.5.2一元多项式的存储47
2.5.3一元多项式的运算48
2.6算法举例50
小结53
习题53
实验题57数据结构与算法目录第3章栈和队列61
3.1栈61
3.1.1栈的定义61
3.1.2栈的顺序存储结构和实现62
3.1.3栈的链式存储结构和实现65
3.2栈的典型应用67
3.3栈与递归71
3.3.1递归的实现71
3.3.2递归算法举例72
3.4队列74
3.4.1队列的定义74
3.4.2队列的顺序存储结构及实现74
3.4.3队列的链式存储结构及实现77
3.5栈和队列的应用举例79
3.6算法举例84
小结87
习题88
实验题92第4章串和数组95
4.1串的定义95
4.2串的存储结构96
4.2.1串的顺序存储结构96
4.2.2串的链式存储结构96
4.3串的模式匹配97
4.3.1简单模式匹配算法97
4.3.2KMP算法99
4.4串的应用举例102
4.5数组的定义103
4.6数组的顺序存储结构104
4.7矩阵的压缩存储106
4.7.1特殊矩阵106
4.7.2稀疏矩阵107
4.8算法举例113
小结115
习题115
实验题118第5章树和二叉树121
5.1树的逻辑结构121
5.1.1树的定义和术语121
5.1.2树的逻辑表示方法123
5.2树的存储结构124
5.3二叉树的逻辑结构127
5.3.1二叉树的定义127
5.3.2二叉树的性质128
5.4二叉树的存储结构130
5.4.1二叉树的顺序存储结构130
5.4.2二叉树的链式存储结构131
5.4.3基于二叉链表的二叉树遍历131
5.4.4线索链表和线索二叉树139
5.5树、森林与二叉树的相互转换143
5.5.1树与二叉树的相互转换143
5.5.2森林与二叉树的相互转换144
5.5.3树和森林的遍历146
5.6哈夫曼树及其应用147
5.6.1哈夫曼树(最优二叉树)147
5.6.2哈夫曼编码150
5.7二叉树的应用举例153
5.8算法举例156
小结159
习题159
实验题164第6章图169
6.1图的定义和术语169
6.2图的存储结构173
6.2.1邻接矩阵173
6.2.2邻接表175
6.2.3十字链表177
6.2.4邻接多重表178
6.3图的遍历179
6.3.1深度优先遍历180
6.3.2广度优先遍历181
6.3.3图的遍历与图的连通性183
6.4生成树和最小生成树183
6.4.1生成树183
6.4.2最小生成树184
6.5最短路径189
6.5.1单源点最短路径189
6.5.2任意两顶点之间的最短路径192
6.6有向无环图及其应用194
6.6.1拓扑排序194
6.6.2关键路径197
6.7图的应用举例202
6.8算法举例205
小结208
习题209
实验题212第7章查找217
7.1集合和查找217
7.2静态查找表上的查找218
7.2.1顺序查找218
7.2.2折半查找220
7.2.3分块查找223
7.3动态查找表上的查找225
7.3.1二叉排序树225
7.3.2平衡二叉树230
7.3.3B树239
7.4哈希表上的查找244
7.4.1哈希表的定义244
7.4.2构造哈希函数的方法245
7.4.3解决冲突的方法246
7.4.4哈希表的查找性能分析250
7.4.5开放定址法与链地址法的比较251
7.5算法举例252
小结255
习题255
实验题258第8章排序263
8.1概述263
8.2插入排序265
8.2.1直接插入排序265
8.2.2折半插入排序267
8.2.3希尔排序268
8.3交换排序269
8.3.1起泡排序269
8.3.2快速排序271
8.4选择排序274
8.4.1直接选择排序274
8.4.2堆排序275
8.5归并排序279
8.6分配排序281
8.7各种内部排序方法的比较285
8.8外部排序286
8.8.1文件管理286
8.8.2外部排序的方法287
8.8.3多路平衡归并排序288
8.8.4最佳归并树290
8.9算法举例292
小结294
习题294
实验题297参考文献300