《数据结构》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:刘大有等编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2001
  • ISBN:7040089084
  • 页数:461 页
图书介绍:

第一章 绪论 1

1.1 数据结构概念 1

1.2 面向对象程序设计OOP与抽象数据类型ADT 3

1.3 算法概念和算法描述语言 5

第二章 算法分析基础 9

2.1 引论 9

2.2 算法时间复杂性的分析方法 11

2.3 时间与空间分析 15

习题 16

第三章 面向对象程序设计与C++语言 18

3.1 类和对象 18

3.1.1 类声明 18

3.1.2 类实现 19

3.1.3 对象声明 20

3.2 C++语言的基本操作 21

3.2.1 输入输出的C++实现 21

3.2.2 友元函数(friend function) 23

3.2.3 参数传递 24

3.2.4 多态性 25

3.2.5 动态存储分配 28

3.3 模板 29

3.3.1 模板函数 29

3.3.2 模板类 31

3.4 继承 32

习题 34

第四章 线性表、堆栈、队列 35

4.1 线性表的定义和基本操作 35

4.2 线性表的存储结构 36

4.2.1 顺序存储结构 36

4.2.2 链接存储结构--单链表 36

4.2.3 循环链表 47

4.2.4 双向循环链表 49

4.3 堆栈和队列 53

4.3.1 定义和主要操作 53

4.3.2 顺序存储 56

4.3.3 链接存储 63

4.3.4 应用--算术表达式求值 65

习题 68

第五章 数组、字符串和集合类 71

5.1 数组 71

5.1.1 顺序存储的数组 71

5.1.2 静态数组与动态数组 73

5.1.3 稀疏矩阵 77

5.2 字符串 84

5.2.1 定义和主要操作 84

5.2.2 存储方式 85

5.2.3 模式匹配算法 86

5.3 整型集合 90

习题 94

第六章 树 98

6.1 基本概念 98

6.2 二叉树 99

6.2.1 主要性质和定义 99

6.2.2 二叉树的实现 102

6.2.3 二叉树的遍历 108

6.2.4 复制二叉树 110

6.3 线索二叉树 111

6.4 树和森林 119

6.4.1 树的顺序存储结构 119

6.4.2 树的链接存储结构 121

6.4.3 森林与二叉树的转换 125

6.4.4 树和森林的遍历 126

6.5 压缩与哈夫曼树 131

习题 135

第七章 图 137

7.1 概念和定义 137

7.2 图的存储结构与类Graph 139

7.2.1 存储结构 139

7.2.2 Graph类 141

7.3 遍历函数的实现 153

7.3.1 深度优先遍历 153

7.3.2 广度优先遍历 155

7.4 拓扑排序 156

7.5 关键路径 159

7.6 最短路径问题 163

7.6.1 无权最短路径问题 163

7.6.2 正权最短路径问题 165

7.6.3 负权最短路径问题 168

7.6.4 每对顶点之间的最短路径 171

7.7 最小支撑树 173

7.8 应用 178

7.8.1 可及性与Warshall算法 178

7.8.2 连通分量 180

习题 182

第八章 递归 186

8.1 什么是递归 186

8.2 基本递归过程 188

8.3 递归过程的实现:堆栈与递归 191

8.4 递归到非递归的转换 196

8.5 递归的应用 203

8.5.1 应用实例1:算术表达式求值 203

8.5.2 应用实例2:回溯 205

习题 210

第九章 排序 211

9.1 插入排序 212

9.2 交换排序 217

9.2.1 冒泡排序 217

9.2.2 分划交换排序 222

9.3 选择排序 231

9.3.1 直接选择排序 231

9.3.2 堆排序 232

9.4 合并排序 238

9.5 排序下界 242

9.6 分布排序 243

9.6.1 基数分布 244

9.6.2 值分布 247

9.7 外排序 249

9.7.1 外存储器 249

9.7.2 磁带排序 250

9.7.3 磁盘排序 260

习题 266

第十章 查找 269

10.1 线性表查找 269

10.1.1 顺序查找 270

10.1.2 有序表的查找 271

10.2 二叉查找(搜索)树 278

10.2.1 定义和基本操作 278

10.2.2 静态树 281

10.2.3 动态树 289

10.3 数字查找树 320

10.4 杂凑 322

10.4.1 杂凑表的定义和主要操作 322

10.4.2 杂凑函数 323

10.4.3 冲突调节 326

10.5 (a,b)-树、B树和B’树 334

习题 341

第十一章 内存管理 344

11.1 均匀大小记录的管理和废料收集方法 344

11.1.1 访问计数器法 345

11.1.2 废料收集 346

11.2 不同大小记录的查找分配和压缩分配 350

11.2.1 查找分配 351

11.2.2 压缩分配 357

11.3 伙伴系统 362

11.4 C++中的动态内存分配 368

习题 369

第十二章 复杂数据结构 371

12.1 优先级队列 371

12.1.1 类声明 371

12.1.2 优先级队列的应用:长归并段 372

12.2 不相交集合类 378

12.2.1 等价关系 378

12.2.2 动态等价 379

12.2.3 快速查找算法 383

12.2.4 快速合并算法 384

12.2.5 C++实现 390

12.2.6 最坏情况下的归并和路径压缩 391

第十三章 文件 393

13.1 文件结构概论 393

13.2 顺序文件 396

13.2.1 串行处理文件 396

13.2.2 顺序处理文件 399

13.2.3 增补文件 400

13.3 杂凑(散列)文件 402

13.3.1 杂凑文件的设计 402

13.3.2 可扩充的杂凑文件 405

13.4 索引文件 410

13.4.1 动态索引结构和静态索引结构 414

13.4.2 索引顺序文件 414

13.4.3 B’索引文件 418

13.5 倒排文件和多重链表文件 422

习题 430

第十四章 应用 432

14.1 事件驱动模拟(Event-Driven Simulation) 432

14.1.1 模拟设计 432

14.1.2 模拟建立 436

14.1.3 运行模拟 437

14.2 在线等价类 443

14.2.1 树形描述 443

14.2.2 操作 444

14.2.3 性能评价 445

14.2.4 性能改进 445

14.3 残缺棋盘 451

14.4 图像压缩 454

参考文献 461