第1章概述1
1.1数据结构的发展1
1.2基本概念2
1.3算法描述与分析5
习题110第2章线性表13
2.1线性表的定义及基本操作13
2.1.1线性表的基本概念13
2.1.2线性表的基本操作14
2.2顺序表15
2.2.1顺序表的定义15
2.2.2基本操作在顺序表上的实现16
2.3链表19
2.3.1单链表的表示和实现19
2.3.2双链表的表示和实现27
2.3.3循环链表的表示和实现32
2.3.4静态链表的表示与实现39
习题244第3章特殊线性表49
3.1栈49
3.1.1栈的定义及其基本操作49
3.1.2顺序栈的表示和实现50
3.1.3链栈的表示与实现55数据结构(C语言版)(第3版)目录3.2队列58
3.2.1队列的定义及其基本操作58
3.2.2顺序队列的表示和实现59
3.2.3链队列的表示和实现64
3.3串66
3.3.1串的定义及其基本操作66
3.3.2顺序串的表示与实现67
3.3.3链串的表示和实现72
3.3.4串的模式匹配78
习题384第4章数组和广义表87
4.1数组87
4.1.1数组的定义及基本操作87
4.1.2数组存储结构88
4.1.3矩阵的压缩存储89
4.2广义表103
4.2.1广义表的定义和基本操作103
4.2.2广义表的存储104
习题4109第5章树和二叉树113
5.1树的定义和基本操作113
5.1.1树的定义和基本术语113
5.1.2树的基本操作114
5.2二叉树的定义和性质115
5.2.1二叉树的定义115
5.2.2二叉树的性质与结论115
5.3二叉树的存储118
5.3.1二叉树的顺序存储结构118
5.3.2二叉树的链式存储结构122
5.4二叉树的遍历及应用123
5.4.1二叉树的遍历123
5.4.2二叉树递归遍历应用举例127
5.4.3二叉树的非递归遍历130
5.5线索二叉树132
5.5.1线索二叉树的定义132
5.5.2线索化处理算法133
5.6树和森林137
5.6.1树的存储结构137
5.6.2树、森林与二叉树之间的转换140
5.6.3树和森林的遍历141
5.7赫夫曼树及其应用142
5.7.1赫夫曼树142
5.7.2赫夫曼编码145
习题5148第6章图153
6.1图的基本概念153
6.2图的存储156
6.2.1邻接矩阵156
6.2.2邻接表与逆邻接表158
6.2.3十字链表161
6.2.4邻接多重表162
6.3图的遍历163
6.3.1深度优先搜索及其生成树163
6.3.2广度优先搜索及其生成树164
6.4最小生成树166
6.4.1Kruskal算法166
6.4.2Prim算法167
6.5图的应用168
6.5.1拓扑排序169
6.5.2关键路径170
6.5.3最短路径173
习题6175第7章查找177
7.1查找的基本概念177
7.2静态查找表178
7.2.1顺序查找179
7.2.2二分查找181
7.2.3分块查找184
7.3动态查找表186
7.3.1二叉排序树186
7.3.2平衡二叉树193
7.3.3B树与B+树199
7.3.4键树201
7.4散列表203
7.4.1散列表的定义203
7.4.2散列函数的构造方法204
7.4.3处理冲突的方法206
7.4.4散列表的查找与分析212
习题7213第8章内部排序217
8.1排序的基本概念217
8.2插入排序220
8.3交换排序228
8.4选择排序232
8.5归并排序239
8.6计数排序242
8.7基数排序243
8.8各种排序方法的综合比较246
习题8247第9章外部排序251
9.1外存储器简介251
9.2外部排序的方法252
9.3多路归并排序254
9.4置换选择排序256
9.5最佳归并树258
习题9259第10章文件261
10.1文件的基本概念261
10.2顺序文件263
10.3索引文件265
10.3.1ISAM文件266
10.3.2VSAM文件267
10.4散列文件268
10.5多关键字文件270
10.5.1多重表文件270
10.5.2倒排文件270
习题10271参考文献273