图书介绍

数据结构与算法 C语言版pdf电子书版本下载

数据结构与算法  C语言版
  • 传智播客编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302440680
  • 出版时间:2016
  • 标注页数:366页
  • 文件大小:137MB
  • 文件页数:381页
  • 主题词:数据结构;算法分析;C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

数据结构与算法 C语言版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 数据结构与算法概述 1

1.1 数据结构 1

1.1.1 什么是数据结构 1

1.1.2 数据结构的分类 2

1.2 抽象数据类型 6

1.3 算法 7

1.3.1 什么是算法 7

1.3.2 算法的特性 9

1.3.3 算法的复杂度 10

1.3.4 算法与数据结构 12

1.4 小结 12

【思考题】 12

第2章 线性表 13

2.1 什么是线性表 13

2.2 线性表的顺序存储(顺序表) 14

2.2.1 顺序存储的原理 14

2.2.2 顺序存储的实现 15

2.3 线性表的链式存储(链表) 23

2.3.1 链式存储的原理 23

2.3.2 链式存储的实现 24

2.4 双链表 31

2.4.1 什么是双链表 32

2.4.2 双链表的实现 32

2.5 循环链表 39

2.5.1 什么是循环链表 39

2.5.2 循环链表的实现 40

2.5.3 约瑟夫环 43

2.6 本章小结 48

【思考题】 49

第3章 栈和队列 50

3.1 什么是栈 50

3.2 栈的实现 51

3.2.1 栈的顺序存储实现 51

3.2.2 栈的链式存储实现 56

3.3 栈的应用 60

3.3.1 用栈实现四则运算 60

3.3.2 栈的递归应用 72

3.4 什么是队列 75

3.5 队列的实现 75

3.5.1 顺序队列的实现 76

3.5.2 链式队列的实现 80

3.5.3 循环队列 84

3.6 本章小结 86

【思考题】 87

第4章 串 88

4.1 什么是串 88

4.2 串的存储结构 89

4.2.1 串的顺序存储 89

4.2.2 串的链式存储 97

4.3 串的模式匹配算法 98

4.3.1 朴素的模式匹配 98

4.3.2 KMP算法(无回溯的模式匹配) 101

4.4 本章小结 105

【思考题】 105

第5章 数组和广义表 106

5.1 数组 106

5.2 矩阵的压缩存储 109

5.2.1 特殊矩阵 109

5.2.2 稀疏矩阵的定义 110

5.2.3 稀疏矩阵的创建 112

5.2.4 稀疏矩阵的转置 114

5.2.5 稀疏矩阵的十字链表表示 118

5.3 广义表 123

5.3.1 广义表的定义 123

5.3.2 广义表的存储结构 124

5.3.3 广义表的递归运算 125

5.4 本章小结 132

【思考题】 132

第6章 树 133

6.1 树 133

6.1.1 什么是树 133

6.1.2 树的表示法 135

6.2 二叉树 138

6.2.1 什么是二叉树 138

6.2.2 二叉树的分类 138

6.2.3 二叉树的性质 139

6.3 二叉树的存储结构 141

6.3.1 二叉树的顺序存储 141

6.3.2 二叉树的链式存储 143

6.4 二叉树的遍历 147

6.4.1 二叉树的遍历 147

6.4.2 递归思想的应用 151

6.5 二叉树的非递归遍历 154

6.6 二叉树与树、森林之间的转换 162

6.6.1 二叉树与树之间的转换 162

6.6.2 二叉树与森林之间的转换 162

6.7 二叉树的创建 164

6.7.1 中序和先序创建二叉树 164

6.7.2 #号法创建树 166

6.8 线索二叉树 169

6.8.1 什么是线索二叉树 169

6.8.2 二叉树的线索化 171

6.8.3 线索化二叉树的遍历 175

6.9 赫夫曼树 177

6.9.1 什么是赫夫曼树 177

6.9.2 赫夫曼树的构造 178

6.9.3 赫夫曼编码 179

6.10 本章小结 180

【思考题】 181

第7章 图 182

7.1 图的基本概念 182

7.1.1 图的定义与基本术语 182

7.1.2 图的基本操作 185

7.2 图的存储结构 186

7.2.1 图的邻接矩阵存储 187

7.2.2 图的邻接表存储 189

7.2.3 图的十字链表存储 192

7.2.4 图的邻接多重表存储 194

7.3 图的遍历 196

7.3.1 深度优先遍历 196

7.3.2 广度优先遍历 198

7.4 最小生成树 201

7.4.1 什么是最小生成树 201

7.4.2 Prim算法 203

7.4.3 Kruskal算法 207

7.5 最短路径 210

7.5.1 从源点到其他顶点的最短路径 211

7.5.2 每对顶点的最短路径 216

7.6 拓扑排序 219

7.7 关键路径 224

7.8 本章小结 229

【思考题】 230

第8章 查找 231

8.1 查找概述 231

8.2 顺序表的查找 232

8.3 有序表的查找 233

8.3.1 折半查找 233

8.3.2 插值查找 235

8.3.3 斐波纳契查找 235

8.4 索引顺序查找 239

8.5 二叉排序树 241

8.6 平衡二叉树 246

8.6.1 平衡二叉树的概念 246

8.6.2 平衡二叉树的插入 247

8.6.3 平衡二叉树的删除 252

8.7 B树 254

8.7.1 B树的概念 254

8.7.2 B树的插入 256

8.7.3 B树的删除 258

8.8 键树 261

8.9 哈希表 265

8.9.1 什么是哈希表 265

8.9.2 哈希函数的构造方法 267

8.9.3 处理哈希冲突 269

8.9.4 哈希表的查找实现 273

8.10 本章小结 275

【思考题】 275

第9章 内部排序 276

9.1 排序的概念与分类 276

9.2 交换排序 278

9.2.1 冒泡排序 279

9.2.2 快速排序 283

9.3 插入排序 286

9.3.1 直接插入排序 286

9.3.2 折半插入排序 289

9.3.3 希尔排序 290

9.4 选择排序 294

9.4.1 简单选择排序 294

9.4.2 树形选择排序 296

9.4.3 堆排序 298

9.5 归并排序 303

9.6 基数排序 307

9.6.1 基数排序基础 307

9.6.2 链式基数排序 310

9.7 内部排序方法比较 314

9.8 磁盘排序 315

9.8.1 外部存储设备 315

9.8.2 磁盘排序分析 317

9.8.3 置换-选择排序 319

9.8.4 多路平衡归并 321

9.8.5 最佳归并树 324

9.9 本章小结 325

【思考题】 326

第10章 文件 327

10.1 文件概述 327

10.2 顺序文件和索引文件 328

10.2.1 顺序文件 328

10.2.2 索引文件 329

10.3 ISAM文件和VSAM文件 331

10.3.1 ISAM文件 331

10.3.2 VSAM文件 334

10.4 哈希文件 336

10.5 多关键字文件 337

10.5.1 多重表文件 337

10.5.2 倒排文件 338

10.6 本章小结 339

【思考题】 339

第11章 综合项目——贪吃蛇 340

11.1 项目分析 340

11.1.1 模块设计 340

11.1.2 模块描述 342

11.1.3 项目分析 345

11.2 项目实现 346

11.2.1 创建项目 346

11.2.2 项目设计 346

11.2.3 项目实现 349

11.2.4 主函数实现 360

11.2.5 效果展示 364

11.3 项目心得 365

【思考题】 366

精品推荐