当前位置:首页 > 工业技术
数据结构实用教程
数据结构实用教程

数据结构实用教程PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:张居晓,乔正洪,朱胜强等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302302155
  • 页数:341 页
图书介绍:本书以C语言为基础,重点介绍线性表、栈、队列、字符串、图树和二叉树等基本数据结构、各种查找和排序算法。
《数据结构实用教程》目录

第1章 绪论 1

1.1 什么是数据结构 2

1.1.1 数据结构的产生与发展 2

1.1.2 数据和数据结构 3

1.1.3 数据的逻辑结构和存储结构 3

1.1.4 数据类型 5

1.2 算法与算法分析 7

1.2.1 算法 7

1.2.2 算法设计的目标 7

1.2.3 算法设计的时间复杂度 8

1.2.4 算法设计的空间复杂度 9

本章小结 9

习题 10

第2章 线性表 13

2.1 工作场景导入 14

2.2 线性表的定义和基本操作 14

2.2.1 线性表的定义 14

2.2.2 线性表的基本操作 15

2.3 线性表的顺序存储结构 16

2.3.1 顺序表的特点 16

2.3.2 顺序表的基本操作 16

2.4 线性表的链式存储结构 19

2.4.1 单链表 19

2.4.2 双向链表 25

2.4.3 循环链表 27

2.5 回到工作场景 28

2.6 工作实训营 32

2.6.1 训练实例 32

2.6.2 常见问题解析 36

本章小结 38

习题 39

第3章 栈和队列 43

3.1 工作场景导入 44

3.2 栈 44

3.2.1 栈的概念及操作 45

3.2.2 栈的实现与基本操作 46

3.2.3 栈的应用 51

3.3 队列 55

3.3.1 队列的概念及操作 55

3.3.2 循环队列 56

3.3.3 队列的基本操作实现 58

3.3.4 队列的应用 62

3.4 回到工作场景 66

3.5 工作实训营 71

3.5.1 训练实例一:模拟排队看病 71

3.5.2 训练实例二:模拟计算器 74

3.5.3 常见问题解析 79

本章小结 80

习题 80

第4章 串 83

4.1 工作场景导入 84

4.2 串的基本概念 84

4.3 串的顺序存储结构与基本操作 85

4.4 串的链式存储结构 88

4.5 串的模式匹配 90

4.5.1 Brute.Force算法 91

4.5.2 KMP算法 92

4.6 回到工作场景 95

4.7 工作实训营 97

4.7.1 训练实例 97

4.7.2 常见问题解析 99

本章小结 99

习题 100

第5章 数组及广义表 103

5.1 工作场景导入 104

5.2 数组的定义 104

5.3 数组的顺序存储结构与实现 105

5.3.1 数组的顺序存储结构 105

5.3.2 基本操作的实现 106

5.3.3 数组的应用举例 108

5.4 矩阵的压缩存储 112

5.4.1 特殊矩阵 112

5.4.2 稀疏矩阵 116

5.5 广义表 119

5.5.1 广义表的定义 119

5.5.2 广义表的存储结构 119

5.5.3 广义表的应用 124

5.6 回到工作场景 125

5.7 工作实训营 127

5.7.1 训练实例 127

5.7.2 常见问题解析 128

本章小结 129

习题 130

第6章 树 133

6.1 工作场景导入 134

6.2 树的基本概念 134

6.2.1 树的定义 134

6.2.2 树的基本术语 135

6.3 二叉树 136

6.3.1 二叉树的基本概念 136

6.3.2 二叉树的存储结构 138

6.4 二叉树的遍历 143

6.4.1 二叉树的前序遍历 143

6.4.2 二叉树的中序遍历 144

6.4.3 二叉树的后序遍历 145

6.5 线索二叉树 148

6.5.1 线索二叉树的定义 148

6.5.2 中序线索二叉树 149

6.6 树和森林 151

6.6.1 树的存储结构 151

6.6.2 森林、树、二叉树的相互转化 153

6.6.3 树和森林的遍历 155

6.7 哈夫曼树及其应用 155

6.7.1 哈夫曼树的概念 156

6.7.2 哈夫曼编码 158

6.8 回到工作场景 161

6.9 工作实训营 164

6.9.1 训练实例 164

6.9.2 常见问题解析 167

本章小结 168

习题 168

第7章 图 171

7.1 工作场景导入 172

7.2 图的基本概念与存储方式 172

7.2.1 邻接矩阵表示法 175

7.2.2 邻接表表示法 178

7.3 图的遍历 179

7.3.1 深度优先搜索遍历 179

7.3.2 广度优先搜索遍历 180

7.3.3 遍历算法的实现 182

7.4 生成树和最小生成树 185

7.4.1 生成树 185

7.4.2 最小生成树 185

7.4.3 普里姆算法 186

7.4.4 克鲁斯卡尔算法 190

7.5 最短路径 196

7.5.1 单源点最短路径 197

7.5.2 所有顶点对最短路径问题 199

7.6 回到工作场景 199

7.7 工作实训营 202

7.7.1 训练实例 202

7.7.2 常见问题解析 205

本章小结 207

习题 208

第8章 查找 211

8.1 工作场景导入 212

8.2 查找的基本概念 212

8.3 顺序查找 213

8.4 二分查找 214

8.5 分块查找 217

8.6 二叉查找树 220

8.6.1 二叉查找树的定义 220

8.6.2 二叉查找树的插入 221

8.6.3 二叉查找树的查找 222

8.6.4 二叉查找树的删除 224

8.7 哈希表 227

8.7.1 构造哈希函数的方法 228

8.7.2 哈希冲突解决方法 229

8.7.3 哈希表的查找与分析 235

8.8 回到工作场景 237

8.9 工作实训营 238

8.9.1 训练实例 238

8.9.2 常见问题解析 240

本章小结 241

习题 242

第9章 排序 245

9.1 工作场景导入 246

9.2 排序的基本概念 246

9.3 插入排序 247

9.3.1 直接插入排序 247

9.3.2 希尔排序 248

9.4 交换排序 250

9.4.1 冒泡排序 250

9.4.2 快速排序 251

9.5 选择排序 252

9.5.1 直接选择排序 252

9.5.2 堆排序 254

9.6 归并排序 256

9.6.1 二路归并排序 256

9.6.2 二路归并排序的实现 257

9.7 回到工作场景 259

9.8 工作实训营 260

9.8.1 训练实例 260

9.8.2 常见问题解析 262

本章小结 264

习题 264

第10章 综合实训 267

10.1 综合实训一 268

10.1.1 案例导入 268

10.1.2 问题解析 268

10.1.3 设计目标 269

10.1.4 代码编写 269

10.1.5 调试运行 279

10.2 综合实训二 279

10.2.1 案例导入 279

10.2.2 问题解析 280

10.2.3 设计目标 280

10.2.4 代码编写 281

10.2.5 调试运行 285

10.3 综合实训三 287

10.3.1 案例导入 287

10.3.2 问题解析 287

10.3.3 设计目标 287

10.3.4 代码编写 287

10.3.5 调试运行 295

附录 习题参考答案 297

参考文献 341

相关图书
作者其它书籍
返回顶部