图书目录

第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