《数据结构 C语言描述 融媒体版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:刘小晶主编;朱蓉,杜卫锋,滕姿副主编
  • 出 版 社:杭州:浙江大学出版社
  • 出版年份:2018
  • ISBN:9787308185073
  • 页数:396 页
图书介绍:本教材涵盖基本数据结构、排序和查找等主要内容,以逻辑结构为主线系统介绍线性表、栈与队列、串、树和图等各种基本数据结构内容,从算法的角度系统介绍各类排序、查找算法,注重对不同数据结构和算法的比较分析及其应用。同时,融合互联网技术,将课程的重点、难点、疑点全部采用纸质和通过嵌入二维码获取数学媒体两种形式呈现,并且使媒体素材集知识性、趣味性与互动性于一体,较好地保证教材内容的可更新性和可扩展性。

第1章 绪论 1

1.1 数据结构课程讨论的内容 1

1.1.1 求解问题举例 2

1.1.2 本课程讨论的内容 4

1.2 基本概念与术语 5

1.2.1 数据与数据结构 5

1.2.2 数据类型 9

1.2.3 抽象数据类型 10

1.3 算法 11

1.3.1 算法的基本概念 11

1.3.2 算法的描述 12

1.3.3 相关约定 14

1.4 算法分析 14

1.4.1 时间复杂度分析 15

1.4.2 空间复杂度分析 20

1.4.3 算法设计举例 21

小结 25

习题一 26

第2章 线性表 28

2.1 线性表的类型定义 28

2.1.1 线性表的基本概念 28

2.1.2 线性表的抽象数据类型描述 29

2.2 线性表的顺序存储及其实现 32

2.2.1 顺序表的顺序存储 32

2.2.2 顺序表上基本操作的实现 35

2.2.3 顺序表应用举例 39

2.3 线性表的链式存储及实现 42

2.3.1 单链表的表示 42

2.3.2 单链表上基本操作的实现 43

2.3.3 单链表应用举例 51

2.3.4 其他链表 55

2.4 顺序表与链表的比较 61

2.5 线性表的应用举例 65

小结 69

习题二 69

第3章 栈与队列 73

3.1 栈 74

3.1.1 栈的概念 74

3.1.2 栈的抽象数据类型描述 74

3.1.3 顺序栈及其基本操作的实现 75

3.1.4 链栈及其基本操作的实现 79

3.1.5 栈的应用 81

3.2 队列 94

3.2.1 队列的概念 94

3.2.2 队列的抽象数据类型描述 94

3.2.3 顺序队列及其基本操作的实现 95

3.2.4 链队列及其基本操作的实现 100

3.2.5 其他队列 102

3.2.6 队列的应用 104

3.3 栈与队列的比较 107

3.4 栈与队列的综合应用举例 109

小结 112

习题三 114

第4章 串与数组 118

4.1 串的类型定义 118

4.1.1 串的基本概念 118

4.1.2 串的抽象数据类型描述 119

4.2 串的存储结构 120

4.2.1 定长顺序存储表示 120

4.2.2 堆分配存储表示 124

4.2.3 块链存储表示 125

4.3 串的模式匹配操作 126

4.3.1 Brute-Force模式匹配算法 126

4.3.2 KMP模式匹配算法 128

4.4 串的应用举例 133

4.5 数组的概念及顺序存储结构 137

4.5.1 数组的基本概念 137

4.5.2 数组的抽象数据类型描述 138

4.5.3 数组的顺序存储结构 139

4.6 特殊矩阵的压缩存储 140

4.6.1 对称矩阵的压缩存储 140

4.6.2 三角矩阵的压缩存储 141

4.6.3 对角矩阵的压缩存储 141

4.7 稀疏矩阵的压缩存储 142

4.7.1 三元组顺序表 142

4.7.2 行逻辑链接的顺序表 147

4.7.3 稀疏矩阵的十字链表存储 151

4.8 数组的应用举例 152

小结 154

习题四 155

第5章 树与二叉树 157

5.1 树的基本概念 158

5.2 二叉树 161

5.2.1 二叉树的基本概念 161

5.2.2 二叉树的性质 164

5.2.3 二叉树的存储结构 165

5.3 二叉树的遍历 168

5.3.1 二叉树的遍历方法及其实现 169

5.3.2 二叉树遍历算法的应用举例 177

5.3.3 建立二叉树 181

5.4 哈夫曼树及哈夫曼编码 189

5.4.1 哈夫曼树的基本概念 189

5.4.2 哈夫曼树和哈夫曼编码的构造方法 190

5.4.3 构造哈夫曼树和哈夫曼编码的算法 192

5.5 树与森林 195

5.5.1 树、森林与二叉树之间的转换 195

5.5.2 树的存储结构 198

5.5.3 树和森林的遍历 201

小结 203

习题五 204

第6章 图 207

6.1 图的类型定义 207

6.1.1 图的基本概念 207

6.1.2 图的抽象数据类型描述 211

6.2 图的存储结构 212

6.2.1 邻接矩阵 212

6.2.2 邻接表 217

6.3 图的遍历 220

6.3.1 广度优先搜索 221

6.3.2 深度优先搜索 223

6.3.3 图的遍历方法的应用举例 225

6.4 最小生成树 230

6.4.1 最小生成树的基本概念 230

6.4.2 克鲁斯卡尔算法 232

6.4.3 普里姆算法 232

6.5 最短路径 238

6.5.1 求某个顶点到其余各顶点的最短路径 238

6.5.2 求每一对顶点之间的最短路径 241

6.6 拓扑排序 245

6.6.1 拓扑排序的基本概念 246

6.6.2 拓扑排序的实现 247

6.7 关键路径 249

小结 256

习题六 257

第7章 内排序 260

7.1 排序的基本概念 260

7.2 插入排序 262

7.2.1 直接插入排序 262

7.2.2 希尔排序 265

7.3 交换排序 266

7.3.1 冒泡排序 267

7.3.2 快速排序 268

7.4 选择排序 271

7.4.1 直接选择排序 272

7.4.2 树形选择排序 273

7.4.3 堆排序 274

7.5 归并排序 279

7.6 基数排序 282

7.6.1 多关键字排序 282

7.6.2 链式基数排序 283

小结 284

习题七 286

第8章 外排序 289

8.1 外排序方法 289

8.2 磁盘排序 291

8.2.1 磁盘信息的存取 291

8.2.2 多路平衡归并 292

8.2.3 置换—选择排序 293

8.2.4 最优归并树 296

小结 300

习题八 301

第9章 查找 304

9.1 查找的基本概念 304

9.2 静态表查找 305

9.2.1 顺序查找 306

9.2.2 二分查找 307

9.2.3 分块查找 310

9.3 动态表查找 312

9.3.1 二叉排序树 312

9.3.2 平衡二叉树 322

9.3.3 B_树和B+树 325

9.3.4 红黑树简介 333

9.4 哈希表查找 336

9.4.1 哈希表的定义 336

9.4.2 常用的哈希函数 337

9.4.3 处理冲突的方法 339

9.4.4 哈希表的查找和性能分析 348

小结 349

习题九 350

附录 参考答案 353

习题一 353

习题二 355

习题三 360

习题四 368

习题五 370

习题六 374

习题七 382

习题八 386

习题九 389

参考文献 395