图书目录

目录

     第1章绪论1

     1.1什么是数据结构1

     1.2基本概念和术语4

     1.3抽象数据类型的表示与实现9

     1.4算法和算法分析13

     1.4.1算法13

     1.4.2算法设计的要求13

     1.4.3算法效率的度量14

     1.4.4算法的存储空间需求17

     第2章线性表18

     2.1线性表的类型定义18

     2.2线性表的顺序表示和实现21

     2.3线性表的链式表示和实现27

     2.3.1线性链表27

     2.3.2循环链表35

     2.3.3双向链表35

     2.4一元多项式的表示及相加39

     第3章栈和队列44

     3.1栈44

     3.1.1抽象数据类型栈的定义44

     3.1.2栈的表示和实现45

     3.2栈的应用举例48

     321数制转换48

     322括号匹配的检验49

     323行编辑程序49

     324迷宫求解50

     325表达式求值52

     **3.3栈与递归的实现54

     3.4队列58

     3.4.1抽象数据类型队列的定义58

     3.4.2链队列——队列的链式表示和实现60

     3.4.3循环队列——队列的顺序表示和实现63

     **3.5离散事件模拟65

     第4章串70

     4.1串类型的定义70

     4.2串的表示和实现72

     4.2.1定长顺序存储表示73

     4.2.2堆分配存储表示75

     423串的块链存储表示78

     **43串的模式匹配算法79

     4.3.1求子串位置的定位函数Index(S,T,pos)79

     4.3.2模式匹配的一种改进算法80

     4.4串操作应用举例84

     4.4.1文本编辑84

     **4.4.2建立词索引表86

     第5章数组和广义表90

     5.1数组的定义90

     5.2数组的顺序表示和实现91

     5.3矩阵的压缩存储95

     5.3.1特殊矩阵95

     5.3.2稀疏矩阵96

     5.4广义表的定义106

     5.5广义表的存储结构109

     **5.6m元多项式的表示110

     **5.7广义表的递归算法112

     5.7.1求广义表的深度113

     5.7.2复制广义表115

     5.7.3建立广义表的存储结构115

     第6章树和二叉树118

     6.1树的定义和基本术语118

     6.2二叉树121

     6.2.1二叉树的定义121

     6.2.2二叉树的性质123

     6.2.3二叉树的存储结构126

     6.3遍历二叉树和线索二叉树128

     6.3.1遍历二叉树128

     6.3.2线索二叉树132

     6.4树和森林135

     6.4.1树的存储结构135

     6.4.2森林与二叉树的转换137

     6.4.3树和森林的遍历138

     **6.5树与等价问题139

     6.6赫夫曼树及其应用144

     6.6.1最优二叉树(赫夫曼树)144

     6.6.2赫夫曼编码146

     **6.7回溯法与树的遍历149

     **6.8树的计数152

     第7章图156

     7.1图的定义和术语156

     7.2图的存储结构160

     7.2.1数组表示法161

     7.2.2邻接表163

     7.2.3十字链表164

     7.2.4邻接多重表166

     7.3图的遍历167

     7.3.1深度优先搜索167

     7.3.2广度优先搜索169

     7.4图的连通性问题170

     7.4.1无向图的连通分量和生成树170

     **7.4.2有向图的强连通分量172

     7.4.3最小生成树173

     **7.4.4关节点和重连通分量176

     7.5有向无环图及其应用179

     7.5.1拓扑排序180

     7.5.2关键路径183

     7.6最短路径186

     7.6.1从某个源点到其余各顶点的最短路径187

     7.6.2每一对顶点之间的最短路径190

     第8章动态存储管理193

     8.1概述193

     8.2可利用空间表及分配方法195

     8.3边界标识法198

     8.3.1可利用空间表的结构198

     8.3.2分配算法199

     8.3.3回收算法201

     8.4伙伴系统203

     8.4.1可利用空间表的结构203

     8.4.2分配算法204

     8.4.3回收算法205

     **8.5无用单元收集206

     **8.6存储紧缩212

     第9章查找214

     9.1静态查找表216

     9.1.1顺序表的查找216

     9.1.2有序表的查找218

     **9.1.3静态树表的查找222

     9.1.4索引顺序表的查找225

     9.2动态查找表226

     9.2.1二叉排序树和平衡二叉树227

     9.2.2B-树和B+树238

     **9.2.3键树247

     9.3哈希表251

     9.3.1什么是哈希表251

     9.3.2哈希函数的构造方法253

     9.3.3处理冲突的方法256

     9.3.4哈希表的查找及其分析259

     第10章内部排序263

     10.1概述263

     10.2插入排序265

     10.2.1直接插入排序265

     10.2.2其他插入排序266

     10.2.3希尔排序271

     10.3快速排序272

     10.4选择排序277

     10.4.1简单选择排序277

     10.4.2树形选择排序278

     10.4.3堆排序279

     10.5归并排序283

     10.6基数排序284

     10.6.1多关键字的排序284

     10.6.2链式基数排序286

     10.7各种内部排序方法的比较讨论288

     第11章外部排序293

     11.1外存信息的存取293

     11.2外部排序的方法295

     **11.3多路平衡归并的实现297

     **11.4置换选择排序299

     **11.5最佳归并树304

     第12章文件306

     12.1有关文件的基本概念306

     12.2顺序文件308

     12.3索引文件311

     12.4ISAM文件和VSAM文件313

     12.4.1ISAM文件313

     12.4.2VSAM文件316

     12.5直接存取文件(散列文件)317

     12.6多关键字文件319

     12.6.1多重表文件319

     12.6.2倒排文件319

     附录A名词索引322

     附录B函数索引329

     参考书目334