描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115498281
全彩印刷,篇幅适中,便于内容呈现和学习。 以图的形式呈现每一个操作步骤,降低了理解难度。 注重思路剖析,而非代码实现,特别适合不具有编程经验的读者阅读。 有别于市面上现有的枯燥的数据结构图书,本书采用图解 步骤的方式对数据结构中常见的概念以及算法进行了剖析。 本书内容涵盖了基本的数据结构、递归与动态规划、树、堆、图、比较排序和非比较排序等知识,侧重于从理论上帮助读者掌握相应内容,不涉及具体的编码实现,特别适合没有编程基础的读者阅读。本书也是高校计算机专业师生的理性读物。 本书内容 基础数据结构 递归与动态规划 树 堆 图 比较排序 非比较排序
《图解数据结构与算法》是一本“少字多图”、以图描述原理、形象且易于理解的数据结构与算法图书。全书共分为7章,首先介绍了一些基础的数据结构,包括数组、链表、栈和队列等;然后通过例子来讲解递归和动态规划的算法思想;接着对树进行了讲解,包括二叉树、二叉搜索树、AVL树、红黑树、2-3树、B树以及Trie树等不同用途的树;在树的基础上讲解了堆,包括二叉堆、二项堆和斐波那契堆三种堆结构;还讲解了图结构,主要包括图的表示方式、图的遍历、图的*短路径以及*小生成树;*后讲解了比较排序和非比较排序,其中,比较排序包括选择排序、冒泡排序、插入排序、快速排序、希尔排序、合并排序和堆排序等,而非比较排序则包括计数排序、基数排序和桶排序等。 《图解数据结构与算法》适合对数据结构和算法感兴趣并且想要通过一种轻松的方式学习和掌握数据结构与算法的读者阅读。无论他们是否有编程基础,均可看懂本书。
第 1章 基础数据结构 1
1.1 数组 1
1.1.1 一维数组 1
1.1.2 二维数组 2
1.1.3 三维及更高维数组 3
1.2 链表 4
1.2.1 单向链表 5
1.2.2 双向链表 14
1.3 栈 19
1.3.1 基于数组的栈 19
1.3.2 基于链表的栈 21
1.4 队列 23
1.4.1 基于数组的队列 23
1.4.2 基于链表的队列 26
第 2章 递归与动态规划 28
2.1 递归 28
2.1.1 阶乘 28
2.1.2 斐波那契数列 30
2.2 动态规划 32
2.2.1 斐波那契数列 33
2.2.2 最长公共子序列 36
第3章 树 45
3.1 二叉树 46
3.1.1 完全二叉树 47
3.1.2 满二叉树 48
3.1.3 平衡二叉树 48
3.2 二叉搜索树 49
3.2.1 性质 49
3.2.2 插入操作 50
3.2.3 插入顺序性 51
3.2.4 查找操作 53
3.2.5 中序前驱节点 54
3.2.6 中序后继节点 56
3.2.7 删除操作 58
3.3 AVL树 61
3.3.1 性质 61
3.3.2 二叉搜索树的平衡 62
3.3.3 为什么要旋转 63
3.3.4 插入类型及旋转 63
3.3.5 插入操作 67
3.3.6 查找操作 68
3.3.7 删除操作 69
3.4 红黑树 71
3.4.1 性质 71
3.4.2 旋转和变色 72
3.4.3 插入操作 72
3.4.4 查找操作 79
3.4.5 删除操作 80
3.5 2-3树 86
3.5.1 性质 86
3.5.2 插入操作 87
3.5.3 查找操作 89
3.5.4 删除操作 91
3.6 B树 98
3.6.1 性质 98
3.6.2 插入操作 99
3.6.3 查找操作 102
3.6.4 删除操作 102
3.7 Trie树 109
3.7.1 性质 109
3.7.2 插入操作 109
3.7.3 查找操作 111
3.7.4 删除操作 113
第4章 堆 117
4.1 二叉堆 117
4.1.1 二叉堆的性质 117
4.1.2 二叉堆的实现 118
4.1.3 二叉堆的作用 118
4.1.4 插入操作 118
4.1.5 删除操作 121
4.1.6 构建操作 123
4.2 二项堆 125
4.2.1 结构与性质 125
4.2.2 插入与合并 126
4.2.3 查找最大(小)值 129
4.2.4 删除最大(小)值 131
4.3 斐波那契堆 133
4.3.1 结构及性质 133
4.3.2 斐波那契数列 134
4.3.3 插入操作 135
4.3.4 获取最小节点 136
4.3.5 合并两个斐波那
契堆 136
4.3.6 删除最小键
值节点 136
4.3.7 减小节点键值 139
4.3.8 删除节点 142
第5章 图 143
5.1 图的表示方式 144
5.2 图的遍历 145
5.2.1 广度优先搜索 146
5.2.2 深度优先搜索 151
5.3 图的最短路径 158
5.3.1 Dijkstra算法 158
5.3.2 Floyd算法 166
5.4 最小生成树 177
5.4.1 Prim算法 178
5.4.2 并查集 185
5.4.3 Kruskal算法 190
第6章 比较排序 196
6.1 选择排序 196
6.1.1 排序要点 196
6.1.2 排序性能 197
6.1.3 排序过程 197
6.1.4 稳定性 199
6.2 冒泡排序 200
6.2.1 排序要点 201
6.2.2 排序性能 201
6.2.3 排序过程 201
6.3 插入排序 203
6.3.1 排序要点 203
6.3.2 排序性能 204
6.3.3 排序过程 204
6.4 快速排序 207
6.4.1 排序要点 207
6.4.2 排序性能 207
6.4.3 排序过程 208
6.5 希尔排序 213
6.5.1 排序要点 214
6.5.2 排序性能 214
6.5.3 排序过程 214
6.6 合并排序 219
6.6.1 排序要点 220
6.6.2 排序性能 220
6.6.3 排序过程 220
6.7 堆排序 230
6.7.1 排序要点 230
6.7.2 排序性能 231
6.7.3 排序过程 231
第7章 非比较排序 236
7.1 计数排序 236
7.1.1 不考虑稳定性的
情况 236
7.1.2 考虑稳定性的情况 239
7.1.3 计数排序的局限 247
7.2 基数排序 247
7.2.1 排序性能 247
7.2.2 排序方式 247
7.2.3 基于计数排序的
实现 248
7.2.4 基于桶的实现 253
7.2.5 MSD排序方式 257
7.3 桶排序 260
7.3.1 排序性能 260
7.3.2 排序要点 261
7.3.3 桶的区间 261
7.3.4 排序过程 261
评论
还没有评论。