《数据结构及应用算法教程 修订版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:陈文博,严蔚敏编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302243908
  • 页数:391 页
图书介绍:本书介绍了四大类型的数据结构的特性、存储表示及其应用。每章提供习题。

第1章 绪论 1

1.1 数据结构讨论的范畴 1

1.2 与数据结构相关的概念 2

1.2.1 基本概念和术语 3

1.2.2 数据结构(data structures) 4

1.2.3 数据类型和抽象数据类型 5

1.3 算法及其描述和分析 6

1.3.1 算法 6

1.3.2 算法的描述 6

1.3.3 算法效率的衡量方法和准则 9

1.3.4 算法的存储空间需求 10

解题指导与示例 11

习题 16

第2章 线性表 18

2.1 线性表的类型定义 18

2.1.1 线性表的定义 18

2.1.2 线性表的基本操作 19

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

2.2.1 顺序表——线性表的顺序存储表示 22

2.2.2 顺序表中基本操作的实现 23

2.2.3 顺序表其他算法举例 28

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

2.3.1 单链表和指针 31

2.3.2 单链表的基本操作 32

2.3.3 单链表的其他操作举例 36

2.3.4 循环链表 39

2.3.5 双向链表 40

2.4 有序表 42

2.5 顺序表和链表的综合比较 47

解题指导与示例 47

习题 57

第3章 排序 60

3.1 排序的基本概念 60

3.2 简单排序方法 63

3.2.1 插入排序 63

3.2.2 起泡排序 65

3.3 先进排序方法 67

3.3.1 快速排序 67

3.3.2 归并排序 69

3.3.3 堆排序 71

3.4 基数排序 72

3.5 各种排序方法的综合比较 76

解题指导与示例 78

习题 84

第4章 栈和队列 86

4.1 栈 86

4.1.1 栈的结构特点和操作 86

4.1.2 栈的表示和操作的实现 87

4.2 栈的应用举例 90

4.3 队列 98

4.3.1 队列的结构特点和操作 98

4.3.2 队列的表示和操作的实现 100

4.4 队列应用举例 104

解题指导与示例 109

习题 113

第5章 串和数组 115

5.1 串的定义和操作 115

5.2 串的表示和实现 118

5.2.1 定长顺序存储表示 118

5.2.2 堆分配存储表示 119

5.2.3 块链存储表示 120

5.3 正文模式匹配 121

5.4 正文编辑——串操作应用举例 123

5.5 数组 124

5.5.1 数组的定义和操作 124

5.5.2 数组的顺序表示和实现 125

5.5.3 数组的应用 127

5.6 矩阵的压缩存储 130

5.6.1 特殊形状矩阵的存储表示 130

5.6.2 随机稀疏矩阵的存储压缩 131

解题指导与示例 137

习题 142

第6章 二叉树和树 144

6.1 二叉树 144

6.1.1 二叉树的定义和基本术语 144

6.1.2 二叉树的几个基本性质 147

6.1.3 二叉树的存储结构 148

6.2 二叉树遍历 150

6.2.1 问题的提出 150

6.2.2 遍历算法描述 152

6.2.3 二叉树遍历应用举例 153

6.2.4 线索二叉树 157

6.3 树和森林 159

6.3.1 树和森林的定义 159

6.3.2 树和森林的存储结构 161

6.3.3 树和森林的遍历 164

6.4 树的应用 168

6.4.1 堆排序的实现 168

6.4.2 二叉排序树 171

6.4.3 赫夫曼树及其应用 173

解题指导与示例 179

习题 198

第7章 图和广义表 201

7.1 图的定义和术语 201

7.2 图的存储结构 204

7.2.1 图的数组(邻接矩阵)存储表示 204

7.2.2 图的邻接表存储表示 205

7.3 图的遍历 207

7.3.1 深度优先搜索遍历图 208

7.3.2 广度优先搜索遍历图 210

7.4 连通网的最小生成树 215

7.5 单源最短路径 217

7.6 拓扑排序 221

7.7 关键路径 223

7.8 广义表 225

7.8.1 广义表的定义 225

7.8.2 广义表的存储结构 226

7.8.3 广义表的遍历 227

解题指导与示例 228

习题 246

第8章 查找表 248

8.1 静态查找表 249

8.1.1 顺序查找 250

8.1.2 折半查找 251

8.1.3 分块查找 254

8.2 动态查找表 255

8.2.1 二叉查找树 256

8.2.2 键树 260

8.3 哈希表及其查找 265

8.3.1 什么是哈希表 265

8.3.2 构造哈希函数的几种方法 267

8.3.3 处理冲突的方法和建表示例 268

8.3.4 哈希表的查找及其性能分析 269

8.3.5 哈希表的应用举例 272

解题指导与示例 274

习题 285

第9章 文件 287

9.1 基本概念 287

9.1.1 外存储器简介 287

9.1.2 有关文件的基本概念 288

9.2 顺序文件 289

9.2.1 存储在顺序存储器上的文件 289

9.2.2 存储在直接存储器上的文件 291

9.3 索引文件 291

9.3.1 B树 291

9.3.2 B+树和索引顺序文件 293

9.4 哈希文件 295

9.4.1 文件组织方式 295

9.4.2 文件的操作 296

9.5 多关键码文件 296

9.5.1 倒排文件 297

9.5.2 索引链接文件 297

解题指导与示例 299

习题 300

第10章 数据结构程序设计示例 301

10.1 抽象数据类型 301

10.2 从问题到程序的求解过程 304

10.2.1 建立数据结构模型设计抽象数据类型 305

10.2.2 算法设计 306

10.2.3 实现抽象数据类型 307

10.2.4 编制程序代码并进行静态测试和动态调试 308

10.3 程序的规范说明 309

10.4 应用示例分析 311

10.4.1 含并、交和差运算的集合类型 312

10.4.2 最佳任务分配方案求解 322

10.4.3 排队问题的系统仿真 330

10.4.4 十进制四则运算计算器 339

10.4.5 自行车零部件库的库存模型 345

10.4.6 教务课程计划的辅助制定 353

10.4.7 一个小型全文检索模型 360

10.4.8 汽车牌照的快速查找 369

实习题 377

实习一 链表的维护与文件形式的保存 378

实习二 用回溯法求解“稳定婚配”问题 378

实习三 以队列实现的仿真技术预测理发馆的经营状况 379

实习四 利用树形结构的搜索算法模拟因特网域名的查询 380

实习五 管道铺设施工的最佳方案选择 381

实习六 使用哈希表技术判别两个源程序的相似性 381

附录 算法一览表 384

参考文献 391