第1章绪论 1
1.1什么是数据结构 1
目 录 1
1.2基本概念和术语 3
1.3数据结构的发展及其重要地位 11
1.4算法的描述和算法分析 11
1.4.1算法的描述 11
1.4.2算法设计的要求 14
1.4.3算法效率的度量 14
习题1 17
1.4.4算法的存储空间需求 17
第2章线性表 19
2.1线性表的定义及操作 19
2.1.1线性表的定义 19
2.1.2线性表的基本操作 20
2.1.3线性表操作举例 20
2.2线性表的顺序存储及操作实现 23
2.2.1线性表的顺序存储结构 23
2.2.2顺序表的操作实现 24
2.3.1 线性表链式存储的概念 27
2.3线性表的链式存储结构及操作实现 27
2.3.2单链表 28
2.3.3单链表上的基本操作 29
2.3.4循环链表 32
2.3.5双向链表 33
2.4顺序表和链表的比较 35
习题2 36
3.1.1栈的概念及操作 37
3.1.2栈的存储结构及操作实现 37
3.1 栈 37
第3章栈和队列 37
3.2栈的应用举例 42
3.3 队 列 47
3.3.1 队列的定义和操作 47
3.3.2 队列的存储结构及操作实现 48
3.4队列的应用举例 54
习题3 56
第4章 串和数组 58
4.1 串的概念和基本操作 58
4.1.2串的基本操作 58
4.2.1 串的顺序存储结构 60
4.2串的存储结构 60
4.2.2串的链式存储结构 62
4.3串的操作实现 63
4.4数组 65
4.4.1数组的定义 65
4.4.2数组的顺序存储结构 66
4.5矩阵的压缩存储 67
4.5.1特殊矩阵的压缩存储 67
4.5.2稀疏矩阵的压缩存储 69
习题4 74
第5章二叉树和树 76
5.1树和森林 76
5.2二叉树 77
5.2.1二叉树的定义和基本术语 77
5.2.2二叉树的几个基本性质 79
5.2.3二叉树的存储结构 80
5.3二叉树与树、森林之间的转换 82
5.3.1二叉树与树之间的转换 82
5.3.2二叉树与森林之间的转换 84
5.4.1二叉树的遍历 85
5.4二叉树遍历 85
5.4.2二叉链表的建立 92
5.5线索二叉树 94
5.5.1全线索二叉树 94
5.5.2线索二叉树 96
5.6树的应用 100
5.6.1 哈夫曼树及其应用 100
5.6.2二叉排序树 106
习题5 113
6.1 图的定义和术语 115
第6章图和广义表 115
6.2图的存储结构 117
6.2.1邻接矩阵 117
6.2.2邻接表 118
6.3 图的遍历 121
6.3.1深度优先搜索遍历 121
6.3.2图的广度优先搜索遍历 123
6.4生成树 125
6.4.1 生成树 125
6.4.2最小生成树 126
6.5最短路径 131
6.5.1单源最短路径 132
6.5.2每一对顶点间的最短路径 135
6.6拓扑排序 138
6.6.1 AOV网 138
6.6.2拓扑排序 139
6.7* 关键路径 143
6.8广义表 146
6.8.1广义表的定义 146
6.8.2广义表的存储 147
习题6 148
第7章 排序 150
7.1排序的基本概念 150
7.2简单的排序方法 151
7.2.1气泡排序 151
7.2.2简单选择排序 153
7.2.3插入排序 154
7.3先进的排序方法 156
7.3.1快速排序 156
7.3.2归并排序 158
7.3.3堆排序 160
7.3.4基数排序 162
7.4各种内部排序方法的综合比较 167
7.4.1 时间性能 167
7.4.2稳定性 167
习题7 167
第8章查找 169
8.1静态查找表 169
8.1.1顺序查找 169
8.1.2折半查找 170
8.1.3分块查找 171
8.2动态查找表 173
8.2.1 二叉排序树 174
8.2.2二叉平衡树 177
8.2.3 B树 180
8.3哈希表及哈希查找 181
8.3.1哈希表概念 181
8.3.2哈希函数 182
8.3.3处理冲突的方法 184
8.3.4哈希表的查找 186
习题8 187
8.3.5 哈希表的删除 187
第9章文件 188
9.1文件的基本概念 188
9.2顺序文件 190
9.3索引文件 191
9.4索引顺序文件 193
9.4.1 ISAM文件 193
9.4.2 VSAM文件 196
9.5散列文件 198
9.6.1多重表文件 199
9.6多关键字文件 199
9.6.2倒排文件 200
习题9 201
第10章课程设计及实践指南 203
10.1线性表 203
10.1.1实验目的 203
10.1.2实验内容 203
10.2栈和队列 204
10.2.1实验目的 204
10.2.2实验内容 205
10.3.2实验内容 208
10.3串和数组 208
10.3.1实验目的 208
10.4二叉树和树 209
10.4.1实验目的 209
10.4.2实验内容 210
10.5图和广义表 210
10.5.1实验目的 210
10.5.2实验内容 211
10.6查找 213
10.6.1实验目的 213
10.6.2实验内容 214
10.7排序 215
10.7.1实验目的 215
10.7.2实验内容 215
附录C语言概要 217
Ⅰ C语言中的关键字(按字母顺序排列) 217
Ⅱ 运算符和结合性 218
Ⅲ C语言常用语法提要 220
Ⅳ C库函数 224
参考文献 231