《算法与数据结构 C语言版》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:范策,周世平等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:7111146204
  • 页数:266 页
图书介绍:本书详细介绍了各种数据结构的基本概念、逻辑特性和物理特性。

第1章 概论 1

1.1什么是数据结构 1

1.2数据结构的基本概念和术语 3

1.3抽象数据类型及其表示与实现 6

1.4算法和算法分析 9

1.4.1算法的定义及特性 9

1.4.2算法的设计要求 9

1.4.3算法效率的衡量方法及其准则 10

1.4.4算法的存储空间需求 13

1.5类C语言描述 14

习题 15

第2章 线性表 17

2.1线性表的类型定义 17

2.1.1线性表的概念 17

2.1.2线性表的抽象数据类型 18

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

2.2.1线性表的顺序表示 21

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

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

2.3.1单链表的表示 25

2.3.2单链表操作的实现 27

2.4线性表实现方法的比较 33

2.5循环链表 34

2.6双链表 35

2.7静态链表 36

2.8算法设计举例 38

习题 42

第3章 栈和队列 44

3.1栈 44

3.1.1栈的类型定义 44

3.1.2栈的表示和实现 45

3.2栈的应用举例 49

3.3栈与递归 51

3.3.1如何实现递归 52

3.3.2采用递归算法解决的问题 52

3.3.3将递归转换为非递归 54

3.4队列 56

3.4.1队列的类型定义 56

3.4.2循环队列——队列的顺序存储结构 57

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

3.5算法设计举例 62

习题 64

第4章 串 67

4.1串的类型定义 67

4.2串的表示和实现 68

4.2.1串的顺序存储结构 69

4.2.2串的链式存储结构 70

4.3串的模式匹配 71

4.3.1朴素的模式匹配算法 71

4.3.2 KMP算法 72

4.4串的应用举例 74

4.5算法设计举例 75

习题 77

第5章 数组和广义表 79

5.1数组的概念及其基本操作 79

5.2数组的顺序存储 80

5.3矩阵的压缩存储 81

5.3.1特殊矩阵 81

5.3.2稀疏矩阵 83

5.4广义表 91

5.4.1广义表的定义 91

5.4.2广义表的存储结构 92

5.5算法设计举例 94

习题 96

第6章 树 98

6.1树的概念及操作 98

6.2二叉树 100

6.2.1二叉树的概念及操作 100

6.2.2二叉树的性质 102

6.2.3二叉树的存储结构 104

6.3二叉树的遍历 105

6.4线索二叉树 108

6.4.1线索二叉树的概念 108

6.4.2遍历线索二叉树 110

6.5树和森林 112

6.5.1树的存储结构 112

6.5.2森林、树、二叉树的相互转换 114

6.5.3树和森林的遍历 116

6.6哈夫曼树及其应用 117

6.6.1最优二叉树(哈夫曼树) 117

6.6.2哈夫曼编码 119

6.7算法设计举例 121

习题 124

第7章 图 128

7.1图的定义和术语 128

7.2图的存储结构 131

7.2.1邻接矩阵表示法(数组表示法) 131

7.2.2邻接表 132

7.2.3十字链表 134

7.2.4邻接多重表 135

7.3图的遍历 136

7.3.1深度优先遍历 136

7.3.2广度优先遍历 138

7.4图的连通性问题 139

7.4.1图的连通分量和生成树 139

7.4.2最小生成树 140

7.5有向无环图及其应用 144

7.5.1拓扑排序 144

7.5.2关键路径 146

7.6最短路径 150

7.6.1从某个源点到其他各顶点的最短路径 150

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

7.7算法设计举例 154

习题 157

第8章 动态存储管理 160

8.1概述 160

8.1.1问题的提出 160

8.1.2内存分配处理 161

8.2可利用空间表及分配办法 161

8.2.1可利用空间表的三种不同的结构形式 162

8.2.2可利用空间表的三种分配策略 163

8.3边界标识法 164

8.3.1可利用空间表的结构 164

8.3.2分配算法 165

8.3.3回收算法 167

8.4伙伴系统 169

8.4.1可利用空间表的结构 169

8.4.2分配算法 170

8.4.3回收算法 171

习题 171

第9章 查找 173

9.1静态查找表上的查找 174

9.1.1顺序表的查找 174

9.1.2折半查找 175

9.1.3斐波那契查找 178

9.1.4插值查找 179

9.1.5分块查找 180

9.2动态查找表上的查找 182

9.2.1二叉排序树 182

9.2.2平衡二叉树 186

9.2.3 B-树 194

9.2.4键树 199

9.3散列表上的查找 199

9.3.1散列表的概念 199

9.3.2构造散列函数的方法 200

9.3.3解决冲突的方法 202

9.3.4散列表的查找性能分析 206

9.3.5闭散列法与开散列法的比较 207

9.4算法设计举例 207

习题 210

第10章 排序 213

10.1概述 213

10.2插入排序 214

10.2.1直接插入排序 214

10.2.2折半插入排序 216

10.2.3二路插入排序 216

10.2.4表插入排序 218

10.2.5希尔排序 220

10.3交换排序 221

10.3.1起泡排序 221

10.3.2快速排序 222

10.4选择排序 224

10.4.1直接选择排序 225

10.4.2树形选择排序 226

10.4.3堆排序 226

10.5归并排序 229

10.6分配排序 230

10.7各种内部排序方法的比较 234

10.8外部排序 235

10.8.1文件管理 235

10.8.2外部排序的方法 236

10.8.3多路平衡归并排序 237

10.8.4置换选择排序 239

10.8.5最佳归并树 242

10.8.6磁带排序 243

10.9算法设计举例 244

习题 246

第11章 文件 249

11.1基本概念 249

11.2顺序文件 251

11.3索引文件 253

11.4索引顺序文件 254

11.4.1 ISAM文件 254

11.4.2 VSAM文件 257

11.5散列文件 259

11.6多关键字文件 259

11.6.1多重表文件 260

11.6.2倒排文件 260

习题 261

附录 上机实验题目 262

参考文献 264