《数据结构(C语言描述)》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:杨厚群主编;王艳霞副主编
  • 出 版 社:上海:上海交通大学出版社
  • 出版年份:2013
  • ISBN:9787313092311
  • 页数:296 页
图书介绍:本教材围绕抽象数据类型这个中心,既面向对象也面向过程,教学内容基于概念、结构和技术三个方面,以标准C语言作为算法描述的语言,着重讲解重要问题的求解技术,满足数据结构课程的需求。引入抽象数据类型,按照认知的规律安排章节内容。

第1章 绪论 1

1.1 数据结构的基本概念 1

1.2 抽象数据类型 4

1.3 算法描述 6

1.4 算法分析 7

1.4.1 时间复杂度 8

1.4.2 空间复杂度 10

1.5 数据结构的C语言表示 11

1.6 习题 13

第2章 线性表 17

2.1 线性表定义 17

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

2.3 线性表的顺序存储结构 19

2.3.1 顺序存储定义 19

2.3.2 顺序存储基本操作 21

2.4 线性表的链式存储结构 27

2.4.1 链式存储定义 27

2.4.2 单链表及其基本操作 27

2.4.3 静态链表 35

2.4.4 循环链表 38

2.4.5 双向链表 39

2.5 顺序表与链表的优缺点 42

2.6 线性表的应用 43

2.7 习题 57

第3章 栈和队列 60

3.1 栈的定义 60

3.2 栈的抽象数据类型 61

3.3 栈的存储结构与操作 62

3.3.1 栈的顺序存储结构及实现 62

3.3.2 栈的链式存储结构 64

3.4 栈的应用 66

3.5 队列的定义 73

3.6 队列的抽象数据类型 74

3.7 队列的存储结构与操作 75

3.7.1 队列的顺序存储结构 75

3.7.2 队列的链式存储结构 76

3.8 循环队列 78

3.9 队列的应用 80

3.10 习题 83

第4章 串 87

4.1 串的定义 87

4.2 串的抽象数据类型 88

4.3 串的存储结构 91

4.3.1 串的顺序存储结构及实现 91

4.3.2 串的链式存储结构及实现 95

4.4 模式匹配 96

4.4.1 简单的模式匹配算法 96

4.4.2 KMP模式匹配算法 97

4.5 串的应用 100

4.6 习题 104

第5章 数组和广义表 107

5.1 数组的定义 107

5.2 数组的抽象数据类型 108

5.3 数组的存储结构 109

5.4 矩阵的压缩存储 111

5.4.1 特殊矩阵 111

5.4.2 稀疏矩阵 115

5.5 广义表的定义 119

5.6 广义表的抽象数据类型 121

5.7 广义表的存储结构与操作 123

5.7.1 头尾表示法及实现 123

5.7.2 孩子兄弟表示法及实现 124

5.8 广义表的应用 126

5.9 习题 129

第6章 树和二叉树 133

6.1 树的定义、基本术语及表示 133

6.1.1 树的定义 134

6.1.2 树的基本术语 134

6.1.3 树的表示 135

6.2 树的抽象数据类型 135

6.3 树的存储结构 137

6.3.1 树的双亲表示法及实现 138

6.3.2 树的孩子表示法及实现 139

6.3.3 树的孩子兄弟表示法及实现 140

6.4 二叉树 142

6.4.1 二叉树的定义 142

6.4.2 二叉树的性质 146

6.4.3 二叉树的存储结构 148

6.5 二叉树的遍历 150

6.5.1 二叉树的遍历原理 150

6.5.2 二叉树的遍历算法 151

6.6 线索二叉树 153

6.6.1 线索二叉树原理 153

6.6.2 线索二叉树的遍历算法 155

6.7 树、森林与二叉树的关系 157

6.7.1 树、森林与二叉树的转换 157

6.7.2 树和森林的遍历 158

6.8 哈夫曼树及其应用 159

6.8.1 哈夫曼树的定义与原理 159

6.8.2 哈夫曼编码 161

6.9 树(二叉树)的应用 165

6.10 习题 169

第7章 图 173

7.1 图的定义和基本术语 173

7.1.1 图的定义 174

7.1.2 图的基本术语 174

7.2 图的抽象数据类型 177

7.3 图的存储结构 179

7.3.1 邻接矩阵与邻接表 179

7.3.2 十字链表与邻接多重表 185

7.3.3 边集数组 188

7.4 图的遍历 189

7.4.1 深度优先遍历 189

7.4.2 广度优先遍历 191

7.5 最小生成树 192

7.5.1 Prim算法 193

7.5.2 Kruskal算法 196

7.5.3 Sollin算法 198

7.6 最短路径 200

7.6.1 Dijkstra算法 201

7.6.2 Floyd算法 203

7.7 图的应用 205

7.8 习题 208

第8章 查找与散列 211

8.1 查找的概念 211

8.2 顺序表查找 212

8.2.1 顺序表查找算法 212

8.2.2 算法优化 213

8.3 有序表查找 214

8.3.1 折半查找法 214

8.3.2 插值查找法 217

8.3.3 斐波那契查找法 218

8.4 索引顺序表查找 220

8.5 二叉排序树 222

8.6 平衡二叉树 230

8.7 B-树和B+树 233

8.8 散列表 243

8.8.1 散列表的概念 243

8.8.2 散列函数的构造 243

8.8.3 解决散列冲突 246

8.8.4 散列表的查找和性能分析 248

8.9 习题 251

第9章 排序 258

9.1 排序的基本概念和分类 258

9.1.1 排序的相关概念 258

9.1.2 排序的分类 259

9.2 插入排序 259

9.3 交换排序 265

9.4 选择排序 269

9.5 归并排序 276

9.6 排序方法的综合比较 278

9.6.1 各类算法性能分析 278

9.6.2 排序算法的选择 279

9.7 习题 279

第10章 文件 282

10.1 文件的基本概念 282

10.1.1 文件的类别 282

10.1.2 文件的操作 284

10.2 文件的存储结构 284

10.2.1 顺序文件 285

10.2.2 索引文件 286

10.2.3 散列文件 290

10.2.4 多关键字文件 291

10.3 习题 295

参考文献 296