《数据结构与算法分析 C++版 第3版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)谢弗(ShafferC.A.)著;张铭等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2013
  • ISBN:9787121209581
  • 页数:394 页
图书介绍:本书采用程序员最爱用的面向对象C++语言来描述数据结构和算法,并把数据结构原理和算法分析技术有机地结合在一起,系统介绍了各种类型的数据结构和排序、检索的各种方法。作者非常注意对每一种数据结构的不同存储方法及有关算法进行分析比较。书中还引入了一些比较高级的数据结构与先进的算法分析技术,并介绍了可计算性理论的一般知识。本版的重要改进在于引入了参数化的模板,从而提高了算法中数据类型的通用性,支持高效的代码重用。

第一部分 预备知识 2

第1章 数据结构和算法 2

1.1 数据结构的原则 3

1.2 抽象数据类型和数据结构 5

1.3 设计模式 8

1.4 问题、算法和程序 10

1.5 深入学习导读 12

1.6 习题 13

第2章 数学预备知识 15

2.1 集合和关系 15

2.2 常用数学术语 18

2.3 对数 19

2.4 级数求和与递归 20

2.5 递归 23

2.6 数学证明方法 24

2.7 估计 29

2.8 深入学习导读 30

2.9 习题 31

第3章 算法分析 35

3.1 概述 35

3.2 最佳、最差和平均情况 38

3.3 换一台更快的计算机,还是换一种更快的算法 40

3.4 渐近分析 41

3.5 程序运行时间的计算 45

3.6 问题的分析 48

3.7 容易混淆的概念 49

3.8 多参数问题 50

3.9 空间代价 51

3.10 加速你的程序 53

3.11 实证分析 54

3.12 深入学习导读 55

3.13 习题 55

3.14 项目设计 58

第二部分 基本数据结构 60

第4章 线性表、栈和队列 60

4.1 线性表 60

4.2 栈 76

4.3 队列 82

4.4 字典 86

4.5 深入学习导读 92

4.6 习题 92

4.7 项目设计 94

第5章 二叉树 96

5.1 定义及主要特性 96

5.2 遍历二叉树 99

5.3 二叉树的实现 102

5.4 二叉检索树 108

5.5 堆与优先队列 114

5.6 Huffman编码树 118

5.7 深入学习导读 125

5.8 习题 125

5.9 项目设计 127

第6章 树 129

6.1 树的定义与术语 129

6.2 父指针表示法 131

6.3 树的实现 135

6.4 K叉树 139

6.5 树的顺序表示法 140

6.6 深入学习导读 142

6.7 习题 142

6.8 项目设计 144

第三部分 排序与检索 146

第7章 内排序 146

7.1 排序术语及记号 146

7.2 三种代价为Θ(n2)的排序算法 147

7.3 Shell排序 151

7.4 归并排序 153

7.5 快速排序 155

7.6 堆排序 160

7.7 分配排序和基数排序 161

7.8 对各种排序算法的实验比较 165

7.9 排序问题的下限 166

7.10 深入学习导读 169

7.11 习题 170

7.12 项目设计 172

第8章 文件管理和外排序 174

8.1 主存储器和辅助存储器 174

8.2 磁盘 175

8.3 缓冲区和缓冲池 180

8.4 程序员的文件视图 185

8.5 外排序 186

8.6 深入学习导读 195

8.7 习题 195

8.8 项目设计 197

第9章 检索 199

9.1 检索未排序和已排序的数组 199

9.2 自组织线性表 203

9.3 集合检索 207

9.4 散列方法 208

9.5 深入学习导读 222

9.6 习题 223

9.7 项目设计 224

第10章 索引技术 226

10.1 线性索引 227

10.2 ISAM 229

10.3 基于树的索引 230

10.4 2-3树 231

10.5 B树 236

10.6 深入学习导读 242

10.7 习题 242

10.8 项目设计 244

第四部分 高级数据结构 246

第11章 图 246

11.1 术语和表示法 246

11.2 图的实现 249

11.3 图的遍历 253

11.4 最短路径问题 258

11.5 最小支撑树 261

11.6 深入学习导读 266

11.7 习题 266

11.8 项目设计 267

第12章 线性表和数组高级技术 268

12.1 广义表 268

12.2 矩阵的表示方法 270

12.3 存储管理 273

12.4 深入学习导读 282

12.5 习题 282

12.6 项目设计 283

第13章 高级树结构 285

13.1 Tie结构 285

13.2 平衡树 288

13.3 空间数据结构 293

13.4 深入学习导读 302

13.5 习题 302

13.6 项目设计 303

第五部分 算法理论 306

第14章 分析技术 306

14.1 求和技术 306

14.2 递归关系 310

14.3 均摊分析 316

14.4 深入学习导读 318

14.5 习题 318

14.6 项目设计 321

第15章 下限 322

15.1 下限证明介绍 322

15.2 线性表检索的下限 324

15.3 查找最大值 326

15.4 对抗性下限证明 327

15.5 状态空间下限证明 330

15.6 查找第i大元素 332

15.7 优化排序 334

15.8 深入学习导读 336

15.9 习题 337

15.10 项目设计 338

第16章 算法模式 339

16.1 动态规划 339

16.2 随机算法 343

16.3 数值算法 348

16.4 深入学习导读 355

16.5 习题 355

16.6 项目设计 356

第17章 计算的限制 357

17.1 归约 357

17.2 难解问题 361

17.3 不可解问题 371

17.4 深入学习导读 375

17.5 习题 376

17.6 项目设计 377

第六部分 附录 380

附录A 实用函数 380

参考文献 381

词汇表 385