目录
目录
第1章 树及其应用
1.1 树的相关概念及其性质 1
1.2 树的存储及遍历法 3
1.3 最近公共祖先(LCA) 9
1.4 树的简单应用 14
1.5 树的统计 21
1.6 树的应用实例 24
本章小结 32
第2章 二叉树及其应用
2.1 二叉树的概念及其性质 33
2.2 二叉树的存储方法 35
2.3 二叉树的遍历 35
2.4 树、森林与二叉树的转化 39
2.5 哈夫曼树及其应用 41
2.6 二叉堆及其应用 45
2.7 二叉排序树及其应用 52
本章小结 57
第3章 集合与并查集
3.1 集合与并查集 59
3.2 并查集的基本操作 61
3.3 并查集的应用 62
本章小结 71
第4章 图及其应用
4.1 图的基本概念 73
4.2 图的存储方法 75
4.3 图的遍历 78
4.4 图的连性问题 86
4.5 无向图的生成树 96
4.6 最短路径 102
4.7 有向图的基本应用 114
本章小结 124
第5章 二分图及其应用
5.1 二分图的判定 125
5.2 二分图的匹配 131
5.3 二分图的最大匹配 133
5.4 二分图的最佳匹配 136
5.5 二分图的应用 139
本章小结 143
第6章 哈希表及其应用
6.1 数值的哈希 145
6.2 冲突的处理 146
6.3 字符串的哈希 154
6.4 排列的哈希 159
6.5 数据结构的哈希 161
本章小结 164
第7章 排序及其应用
7.1 桶排序 165
7.2 插入排序 166
7.3 选择排序 168
7.4 分治思想排序 168
7.5 基数排序 176
7.6 拓扑排序 178
本章小结 181
第8章 基础算法及其应用
8.1 贪心算法 183
8.2 递推算法 189
8.3 分治算法 193
8.4 深度优先搜索的优化 202
8.5 宽度优先搜索的优化 211
本章小结 219
第9章 动态规划
9.1 动态规划的基本原理 221
9.2 线形动态规划 224
9.3 背包类型动态规划 231
9.4 区间类型动态规划 238
9.5 矩阵类型动态规划 241
9.6 状态压缩类型动态规划 245
9.7 树形动态规划 250
9.8 动态规划的状态分析 252
本章小结 254
第10章 数学在程序设计中的应用
10.1 函数单调性的应用 255
10.2 矩阵的应用 258
10.3 线性方程组 262
10.4 矩阵的快速幂 268
10.5 模线性方程 271
10.6 模线性方程组 274
10.7 概率及期望 277
10.8 排列与组合 281
10.9 容斥原理 284
10.10 鸽巢原理 289
10.11 矢量基础运算 289
本章小结 297