《数据结构与经典算法》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:李千目,殷新春,李涛主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302400837
  • 页数:378 页
图书介绍:本书包括:数据结构介绍,算法推导大O阶的方法,线性表结构的介绍,顺序结构与链式结构差异,栈与队列的应用,串的朴素模式匹配、KMP模式匹配算法,树结构的介绍,二叉树前中后序遍历,线索二叉树,赫夫曼树及应用,图结构的介绍,图的深度、广度遍历,最小生成树两种算法,最短路径两种算法,拓扑排序与关键路径算法,查找应用的相关介绍,折半查找、插值查找、斐波那契查找等静态查找,稠密索引、分块索引、倒排索引等索引技术。

第1章 基础知识 1

1.1 数据结构研究什么 1

1.2 基本概念和有关术语 3

1.3 数据类型与抽象数据类型 4

1.3.1 数据类型 4

1.3.2 抽象数据类型 4

1.4 算法描述与算法分析 6

1.4.1 算法的描述 6

1.4.2 算法的时间复杂度分析 7

1.4.3 算法的空间复杂度分析 8

1.5 小结 8

1.6 经典题库 9

1.6.1 要点提醒 9

1.6.2 经典剖析 9

1.7 练习 11

第2章 线性存储结构 13

2.1 线性表的定义及基本操作 13

2.1.1 线性表的基本概念 13

2.1.2 线性表的抽象数据类型 14

2.2 线性表顺序存储结构的定义 15

2.2.1 线性表顺序存储结构的定义 15

2.2.2 顺序表的基本操作及实现 16

2.2.3 顺序表的应用 18

2.3 线性表链式存储结构与实现 20

2.3.1 线性表链式存储结构 21

2.3.2 单链表及其基本操作 21

2.3.3 循环链表的基本操作及实现 29

2.3.4 双链表的基本操作及实现 33

2.3.5 循环双链表 37

2.4 实验 38

实验一:顺序表的操作 38

实验二:单链表连接 40

实验三:循环链表连接 43

实验四:循环双链表操作 47

2.5 小结 52

2.6 经典题库 52

2.6.1 要点提醒 52

2.6.2 经典剖析 53

2.7 练习 61

第3章 栈 65

3.1 栈 65

3.1.1 栈的基本概念 65

3.1.2 栈的抽象数据类型 65

3.1.3 栈的顺序存储结构及实现 66

3.1.4 栈的链式存储结构与实现 70

3.2 栈的应用 74

3.2.1 表达式求值 74

3.2.2 数制转换 76

3.2.3 括号匹配检验 77

3.2.4 栈与递归的实现 78

3.3 实验 79

实验:利用栈寻找迷宫路径 79

3.4 小结 82

3.5 经典题库 82

3.5.1 要点提醒 82

3.5.2 经典剖析 83

3.6 练习 86

第4章 队列 90

4.1 队列 90

4.1.1 什么是队列 90

4.1.2 队列的抽象数据类型 90

4.1.3 队列的顺序存储结构与实现 91

4.1.4 队列的链式存储结构与实现 97

4.2 队列的应用 101

4.3 实验 105

实验:利用队列模拟病人看病 105

4.4 小结 109

4.5 经典题库 109

4.5.1 要点提醒 109

4.5.2 经典剖析 109

4.6 练习 112

第5章 串 116

5.1 串的定义 116

5.1.1 串的定义 116

5.1.2 串的抽象数据类型 116

5.2 串的存储结构与实现 118

5.2.1 串的顺序存储结构与实现 118

5.2.2 串的堆存储结构与实现 121

5.2.3 串的块链存储结构与实现 122

5.3 串的模式匹配算法 123

5.3.1 简单的模式匹配算法——BF算法 123

5.3.2 改进的模式匹配算法——KMP算法 125

5.4 串的应用 127

5.5 实验 128

实验一:显示多位数数字字符 128

实验二:块链的基本操作 130

实验三:统计串中最长的重复子串 135

5.6 小结 137

5.7 经典题库 138

5.7.1 要点提醒 138

5.7.2 经典剖析 138

5.8 练习 140

第6章 数组与广义表 142

6.1 数组的定义 142

6.1.1 数组的概念与性质 142

6.1.2 抽象数据类型 143

6.2 数组相关结构的实现 143

6.2.1 数组的顺序存储 143

6.2.2 数组的基本操作实现 144

6.3 矩阵的压缩存储探究 147

6.3.1 特殊矩阵 147

6.3.2 稀疏矩阵 149

6.4 广义表 153

6.4.1 广义表相关概念 153

6.4.2 抽象数据类型 154

6.4.3 广义表存储结构详解 155

6.4.4 广义表的相关应用 156

6.5 实验 157

实验一:矩阵乘法 157

实验二:三元组实现两个矩阵的乘法 160

实验三:广义表的基本运算 163

6.6 小结 168

6.7 经典题库 169

6.7.1 要点提醒 169

6.7.2 经典剖析 169

6.8 练习 172

第7章 树型结构 175

7.1 树的基本概念和术语 175

7.1.1 树的基本概念 175

7.1.2 基本术语 175

7.2 二叉树 176

7.2.1 二叉树的基本概念 176

7.2.2 二叉树性质的探究 178

7.2.3 抽象数据类型 179

7.2.4 存储结构 181

7.3 遍历二叉树的方法 185

7.3.1 遍历的定义 185

7.3.2 遍历算法探究 186

7.4 线索二叉树 189

7.5 树和森林 192

7.5.1 树的存储结构 192

7.5.2 二叉树与森林 194

7.5.3 树和森林的遍历探究 195

7.6 哈夫曼树 196

7.6.1 哈夫曼树的基本概念 196

7.6.2 哈夫曼树的构造算法 197

7.6.3 哈夫曼树和哈夫曼编码 199

7.7 实验 201

实验一:运算二叉树 201

实验二:统计二叉树结点的个数 203

实验三:统计二叉树的宽度 205

实验四:按层遍历二叉树 207

7.8 小结 210

7.9 经典题库 210

7.9.1 要点提醒 210

7.9.2 经典剖析 210

7.10 练习 217

第8章 图状结构 220

8.1 图的相关定义和术语 220

8.1.1 图的基本概念 220

8.1.2 图的基本术语 220

8.1.3 抽象数据类型 222

8.2 图的存储结构探究 223

8.2.1 邻接矩阵 223

8.2.2 邻接表 225

8.2.3 十字链表 227

8.2.4 多重邻接表 228

8.3 图的遍历 229

8.3.1 深度优先遍历 229

8.3.2 广度优先遍历 230

8.4 最小生成树 231

8.4.1 生成树的概念 231

8.4.2 最小生成树 231

8.4.3 Prim算法 235

8.5 最短路径探究 238

8.5.1 单源点最短路径问题分析 238

8.5.2 所有顶点对应最短路径问题分析 240

8.6 拓扑排序探究 241

8.7 关键路径 244

8.8 实验 244

实验一:遍历算法 244

实验二:Prim算法 248

8.9 小结 253

8.10 经典题库 253

8.10.1 要点提醒 253

8.10.2 经典剖析 253

8.11 练习 264

第9章 查找 269

9.1 查找的基本概念 269

9.2 静态查找表 269

9.2.1 顺序表的查找 269

9.2.2 有序表的查找 270

9.2.3 索引顺序表的查找 271

9.2.4 静态树表的查找 273

9.3 动态查找表 274

9.3.1 二叉排序树 274

9.3.2 平衡二叉树 276

9.3.3 B-和B+树 280

9.3.4 键树 288

9.4 哈希表 289

9.4.1 哈希表的概念 289

9.4.2 哈希表的构造方法 289

9.4.3 处理冲突的方法 290

9.4.4 哈希表的查找及分析 293

9.5 实验 294

实验一:二叉排序树的查找 294

实验二:哈希查找 298

9.6 小结 300

9.7 经典题库 301

9.7.1 要点提醒 301

9.7.2 经典剖析 301

9.8 练习 308

第10章 内部排序 310

10.1 插入排序 310

10.1.1 直接插入排序 310

10.1.2 希尔排序 311

10.2 交换排序 313

10.2.1 冒泡排序 313

10.2.2 快速排序 315

10.3 选择排序 316

10.3.1 简单选择排序 316

10.3.2 堆排序 317

10.4 归并排序 320

10.5 基数排序 321

10.6 各种内排序方法的比较 324

10.7 实验 325

实验一:双向冒泡排序 325

实验二:数组归并排序 328

实验三:计数排序 331

实验四:字符串排序 332

实验五:最高位关键字排序MSD 335

10.8 小结 338

10.9 经典题库 338

10.9.1 要点提醒 338

10.9.2 经典剖析 339

10.10 练习 343

第11章 经典算法 345

11.1 基础算法 345

11.1.1 河内之塔 345

11.1.2 八皇后 346

11.1.3 背包问题 348

11.2 数、运算 352

11.2.1 筛选求质数 352

11.2.2 最大公因数、最小公倍数、因式分解 353

11.2.3 最大访客数 356

11.3 关于博弈 358

11.3.1 洗扑克牌(乱数排列) 358

11.3.2 Craps赌博游戏 360

11.4 集合问题 362

11.4.1 格雷码(Gray Code) 362

11.4.2 m元素集合的n元子集 364

11.5 矩阵 365

11.5.1 稀疏矩阵存储 365

11.5.2 上三角、下三角、对称矩阵存储 367

11.5.3 奇数魔方阵 369

第12章 数据分析与挖掘 371

12.1 大数据时代的挖掘 371

12.1.1 数据挖掘 371

12.1.2 从数据挖掘应用的角度看大数据 372

12.2 挖掘技术发展和历史 373

12.3 十大挖掘算法简介 374

参考文献 378