《数据结构》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:魏振钢主编
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2011
  • ISBN:9787040209327
  • 页数:349 页
图书介绍:本书是针对应用型本科层次计算机相关专业所编写,以基本数据结构和算法设计为知识单元,系统地介绍了数据结构的知识与应用、算法的设计与分析方法。主要内容包括线性表、栈和队列、数组和广义表、树、图、查找、排序等,每章均配有大量习题和模拟题,并安排相关案例和实验题目,可供学生实习使用。本书注重理论与实践相结合,内容深入浅出,可作为计算机或信息类相关专业的本科或专科教材,也可供从事计算机工程与应用工作的科技工作者参考。

第1章 绪论 1

1.1 数据结构的研究内容 1

1.1.1 用计算机解决实际问题的过程 1

1.1.2 学习数据结构的意义 3

1.2 数据结构的基本概念及术语 5

1.3 算法与算法分析 7

1.3.1 算法的定义及特性 7

1.3.2 算法的评价及性能分析 8

1.4 多核技术与并行算法 9

1.4.1 多核技术简介 9

1.4.2 并行算法设计 11

1.5 算法的描述与实现 19

1.5.1 C语言中的关键语法格式 19

1.5.2 C语言中的数据类型 20

1.5.3 C语言中与传递参数相关的技术 22

本章小结 23

习题及思考题 23

第2章 线性表 25

2.1 线性表的概念 26

2.1.1 线性表的定义 26

2.1.2 线性表的运算 26

2.2 线性表的顺序存储 28

2.2.1 顺序表 28

2.2.2 顺序表上的基本操作 29

2.2.3 顺序表的应用 33

2.3 线性表的链式存储 35

2.3.1 单链表 35

2.3.2 循环链表 43

2.3.3 双向链表 45

2.3.4 多线程链表 46

2.4 顺序表与链表的比较 48

2.5 应用 48

2.5.1 约瑟夫问题 48

2.5.2 一元多项式的表示及相加 52

本章小结 58

习题及思考题 58

实验题目 62

第3章 串 63

3.1 串及其运算 63

3.1.1 串的定义 63

3.1.2 串的基本运算 64

3.2 串的表示与实现 65

3.2.1 定长顺序串 66

3.2.2 堆串 67

3.2.3 块链串 69

3.3 串模式匹配算法 70

3.3.1 简单的串模式匹配算法 70

3.3.2 KMP算法 71

3.4 串的应用 74

本章小结 75

习题及思考题 75

第4章 栈与队列 77

4.1 栈 78

4.1.1 栈的定义与运算 78

4.1.2 顺序栈 79

4.1.3 链栈 82

4.1.4 多线程栈 83

4.2 栈的应用 85

4.2.1 数制转换 85

4.2.2 括号匹配检验 86

4.3 栈与递归的实现 89

4.3.1 递归的定义 89

4.3.2 递归的原理 90

4.3.3 递归的应用及算法实现 91

4.3.4 递归算法的非递归化 93

4.4 队列 95

4.4.1 队列的定义与运算 95

4.4.2 顺序队列 96

4.4.3 链队列 100

4.4.4 共享队列 103

4.5 队列的应用 105

4.5.1 回文判断 105

4.5.2 “舞会”问题 106

本章小结 108

习题及思考题 108

实验题目 111

第5章 数组与广义表 114

5.1 多维数组 115

5.1.1 数组的定义 115

5.1.2 数组的运算 116

5.2 数组的顺序存储 116

5.2.1 数组的顺序存储结构 116

5.2.2 数组元素的地址计算 117

5.3 矩阵的压缩存储 119

5.3.1 特殊矩阵 119

5.3.2 稀疏矩阵 121

5.4 矩阵相乘的并行算法 128

5.4.1 矩阵相乘的基本概念 128

5.4.2 串行算法 128

5.4.3 并行算法 128

5.5 广义表 131

5.5.1 广义表的定义 131

5.5.2 广义表的存储结构 133

5.5.3 广义表的相关算法 134

本章小结 136

习题及思考题 136

第6章 树 139

6.1 树的基本概念 140

6.1.1 树的定义 140

6.1.2 树的表示方法 141

6.1.3 树的基本术语 142

6.1.4 树的运算 143

6.2 二叉树 144

6.2.1 二叉树的基本概念 144

6.2.2 二叉树的性质 145

6.2.3 二叉树的存储结构 147

6.3 二叉树的遍历 150

6.3.1 遍历方法 150

6.3.2 遍历算法的应用 154

6.4 线索二叉树 158

6.4.1 线索二叉树的定义和实现 158

6.4.2 线索二叉树的算法实现 160

6.5 树与二叉树的转换 161

6.5.1 树与森林的存储 161

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

6.5.3 树与森林的遍历 168

6.6 哈夫曼树 170

6.6.1 哈夫曼树的基本概念 171

6.6.2 哈夫曼树的构造 172

6.6.3 哈夫曼树的应用 174

本章小结 180

习题及思考题 180

实验题目 184

第7章 图 186

7.1 图的定义及术语 186

7.1.1 图的定义 186

7.1.2 图的运算 187

7.1.3 基本术语 188

7.2 图的存储结构 191

7.2.1 邻接矩阵表示法 191

7.2.2 邻接表表示法 196

7.3 图的遍历 201

7.3.1 深度优先搜索 201

7.3.2 广度优先搜索 206

7.4 图的连通性 210

7.4.1 无向图的连通分量 210

7.4.2 图的生成树 210

7.4.3 图的最小生成树 210

7.5 最短路径 215

7.5.1 单源点最短路径问题 215

7.5.2 Dijkstra算法的并行化 218

7.5.3 求任意一对顶点间的最短路径 220

7.6 有向无环图 221

7.6.1 拓扑排序 221

7.6.2 关键路径 225

7.7 应用实例 228

本章小结 231

习题及思考题 231

实验题目 235

第8章 查找 236

8.1 查找的基本概念 237

8.2 基于线性表的查找法 238

8.2.1 顺序查找法 238

8.2.2 折半查找法 239

8.2.3 分块查找法 243

8.3 基于树的查找法 244

8.3.1 二叉排序树 245

8.3.2 平衡二叉排序树 255

8.3.3 B树 260

8.4 散列技术 267

8.4.1 散列表的基本概念 267

8.4.2 散列函数的设计 268

8.4.3 处理冲突的方法 271

8.4.4 散列表的查找过程 274

8.4.5 散列法的性能分析 275

8.5 应用实例 277

本章小结 279

习题及思考题 280

实验题目 281

第9章 内部排序 283

9.1 排序的基本概念 284

9.2 选择排序 285

9.2.1 简单选择排序 285

9.2.2 堆排序 286

9.2.3 基于并行的锦标赛排序 291

9.3 插入排序 292

9.3.1 直接插入排序 292

9.3.2 折半插入排序 294

9.3.3 希尔排序 295

9.4 交换排序 297

9.4.1 冒泡排序 298

9.4.2 快速排序 299

9.4.3 快速排序的多线程实现 302

9.5 归并排序 303

9.6 基数排序 306

9.6.1 多关键字的排序 306

9.6.2 链式基数排序 307

9.7 排序算法分析 308

9.8 应用实例 309

本章小结 312

习题及思考题 312

实验题目 314

第10章 文件 315

10.1 文件的基本概念 315

10.2 顺序文件 316

10.3 索引文件 317

10.3.1 索引文件的基本概念 317

10.3.2 ISAM文件和VSAM文件 318

10.4 散列文件 320

10.5 倒排文件 321

本章小结 321

习题及思考题 322

附录A 期末考试模拟试卷及全国硕士研究生入学考试统考试题 323

期末考试模拟试卷一 323

期末考试模拟试卷二 325

期末考试模拟试卷三 328

期末考试模拟试卷四 330

2009年全国硕士研究生入学考试统考试题“数据结构”部分 334

2010年全国硕士研究生入学考试统考试题“数据结构”部分 337

附录B 数据结构实验报告范例 339

附录C Visual C++6.0开发环境的介绍 341

附录D OpenMP并行程序设计简介 344

参考文献 349