首页 > 图书中心 > 数据结构与算法

目录

····························································

目录Contents第1章绪论1

1.1数据结构的概念1

1.1.1为什么要学习数据结构1

1.1.2有关概念和术语4

1.1.3数据结构课程的内容6

1.2数据类型与抽象数据类型7

1.2.1数据类型7

1.2.2抽象数据类型7

1.3算法和算法分析8

1.3.1算法特性8

1.3.2算法描述9

1.3.3算法性能分析与度量9

第2章线性表11

2.1线性表的逻辑结构11

2.1.1线性表的定义11

2.1.2线性表的基本操作11

2.2线性表的顺序存储及运算实现12

2.2.1顺序表12

2.2.2顺序表上基本运算的实现14

2.2.3顺序表应用举例18

2.3线性表的链式存储和运算实现20

2.3.1单链表20

2.3.2单链表上基本运算的实现22

2.3.3循环链表28

2.3.4双向链表29

2.3.5静态链表302.3.6单链表应用举例32

2.4顺序表和链表的比较34

◆数据结构与算法目录第3章栈和队列36

3.1栈36

3.1.1栈的定义及基本操作36

3.1.2栈的存储实现和操作实现37

3.2栈的应用举例40

3.3队列50

3.3.1队列的定义及基本运算50

3.3.2队列的存储实现及运算实现50

3.4队列应用举例56

习题59

第4章串60

4.1串及基本运算60

4.1.1串的基本概念60

4.1.2串的基本运算60

4.2串的定长度顺序存储及基本运算62

4.2.1串的定长顺序存储62

4.2.2定长顺序串的基本运算63

4.2.3模式匹配64

4.3串的堆存储结构69

4.3.1串名的存储映像69

4.3.2堆存储结构71

4.3.3基于堆结构的基本运算71

习题73

第5章数组、特殊矩阵和广义表74

5.1多维数组74

5.1.1数组的逻辑结构74

5.1.2数组的内存映像74

5.2特殊矩阵的压缩存储77

5.2.1对称矩阵77

5.2.2三角矩阵78

5.2.3带状矩阵79

5.3稀疏矩阵80

5.3.1稀疏矩阵的三元组表存储80

5.3.2稀疏矩阵的十字链表存储86

5.4广义表92

5.4.1广义表的定义和基本运算92

5.4.2广义表的存储93

5.4.3广义表的基本操作的实现95

习题99

第6章二叉树101

6.1定义与性质101

6.1.1二叉树的基本概念101

6.1.2二叉树的主要性质103

6.2基本操作与存储实现104

6.2.1二叉树的存储104

6.2.2二叉树的基本操作及实现107

6.3二叉树的遍历110

6.3.1二叉树的遍历方法及递归实现110

6.3.2二叉树遍历的非递归实现112

6.3.3由遍历序列恢复二叉树116

6.3.4不用栈的二叉树遍历的非递归方法118

6.4线索二叉树118

6.4.1线索二叉树的定义及结构118

6.4.2线索二叉树的基本操作实现120

6.5二叉树的运用126

6.5.1二叉树遍历的运用126

6.5.2最优二叉树——哈夫曼树129

习题135

第7章树137

7.1树的概念与表示137

7.1.1树的定义及相关术语137

7.1.2树的表示138

7.2树的基本操作与存储139

7.2.1树的基本操作139

7.2.2树的存储结构140

7.3树、森林与二叉树的转换143

7.3.1树转换为二叉树143

7.3.2森林转化为二叉树144

7.3.3二叉树转换为树和森林145

7.4树和森林的遍历146

7.4.1树的遍历146

7.4.2森林的遍历147

7.5树的应用147

7.5.1判定树147

7.5.2集合的表示149

7.5.3关系等价求等价类问题151

习题152

第8章图153

8.1图的定义和术语153

8.1.1图的定义153

8.1.2图的相关术语153

8.1.3图的基本操作156

8.2图的存储表示157

8.2.1邻接矩阵157

8.2.2邻接表159

8.2.3十字链表161

8.2.4邻接多重表163

8.3图的遍历165

8.3.1深度优先搜索165

8.3.2广度优先搜索167

8.4图的连通性169

8.4.1无向图的连通性169

8.4.2有向图的连通性169

8.4.3生成树和生成森林170

8.4.4关结点和重连通分量172

8.5最小生成树175

8.5.1最小生成树的基本概念175

8.5.2构造最小生成树的Prim算法176

8.5.3构造最小生成树的Kruskal算法178

8.6最短路径181

8.6.1从一个源点到其他各点的最短路径181

8.6.2每一对顶点之间的最短路径183

8.7有向无环图及其应用186

8.7.1有向无环图的概念186

8.7.2AOV网与拓扑排序187

8.7.3AOE网与关键路径192

习题196

第9章查找197

9.1基本概念与术语197

9.2静态查找表199

9.2.1静态查找表结构199

9.2.2顺序查找200

9.2.3有序表的折半查找201

9.2.4有序表的插值查找和斐波那契查找203

9.2.5分块查找205

9.3动态查找表205

9.3.1二叉排序树205

9.3.2平衡二叉树210

9.3.3B-树和B+树216

9.4哈希表查找(杂凑法)223

9.4.1哈希表与哈希方法223

9.4.2常用的哈希函数224

9.4.3处理冲突的方法225

9.4.4哈希表的查找分析229

习题230

第10章排序231

10.1基本概念231

10.2插入排序231

10.2.1直接插入排序231

10.2.2折半插入排序233

10.2.3表插入排序234

10.2.4希尔排序236

10.3交换排序238

10.3.1冒泡排序238

10.3.2快速排序239

10.4选择排序241

10.4.1简单选择排序242

10.4.2树型选择排序242

10.4.3堆排序243

10.5二路归并排序246

10.6基数排序248

10.6.1多关键码排序248

10.6.2链式基数排序248

10.7外部排序251

10.7.1外部排序的方法251

10.7.2多路平衡归并的实现253

习题255

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘