清华大学计算机系列教材 数据结构与算法 上册 邓俊辉◎编著 内 容 简 介 本书是作者及其团队在清华大学讲授算法类课程三十年的经验集成,其中的“数据结构”获评清华大 学首批“标杆课程”,慕课“数据结构”与“计算几何”已有来自 160 多个国家和地区的 100 余万人选修。 本书共 14 章,分上下两册。上册包括算法概论、向量、列表、栈与队列、二叉树、二叉搜索树共 6 章,下册包括搜索树应用、高级搜索树、词典、图基础、图进阶、优先级队列、字符串、排序共 8 章,内 容覆盖从线性到非线性的典型数据结构,以及算法设计的基本技巧、算法分析的基本方法。 本书语言精练、内容丰富,融知识性、趣味性为一体;配有大量精美的插图,以可视化的形式揭示算 法的抽象原理及复杂过程;详尽的交叉链接与索引,更令全书浑然一体,为读者提供了良好的阅读体验。 本书是计算机相关专业数据结构与算法类课程的理想教材,是研究生入学考试的重要参考用书,也可作为 计算机相关专业人员的重要参考书。 版权所有,侵权必究。举报:010-62782989,beiqinquan@tup.tsinghua.edu.cn。 图书在版编目(CIP)数据 数据结构与算法:上下册/邓俊辉编著. --北京:清华大学出版社,2026.10. (清华大学计算机系列教材). -- ISBN 978-7-302-72915-0 Ⅰ. TP311.12 中国国家版本馆CIP数据核字第20264GB020号 责任编辑:龙启铭 封面设计:邓俊辉 责任校对:李建庄 责任印制:丛怀宇 出版发行:清华大学出版社 网 址:https: www.tup.com.cn,https: www.wqxuetang.com 地 址:北京清华大学学研大厦 A 座 邮 编:100084 社 总 机:010-83470000 邮 购:010-62786544 投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn 质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn 配套资源下载:https: www.tup.com.cn,010-83470236 印 装 者:小森印刷(北京)有限公司 经 销:全国新华书店 开 本:185mm×260mm 印 张:22.25 字 数:577 千字 版 次:2026 年 10 月第 1 版 印 次:2026 年 10 月第 1 次印刷 印 数:1~2000 定 价:99.00 元(全两册) 产品编号:118607-01 All textbooks are crap imperfect, and this one is no exception. -- Jeff Erickson 第1章 算法概论 1 大师定理 24 大数乘法 25 §1A 从计算,到算法 2 Akra-Bazzi定理 26 工具与过程 2 1E3. 总和最大区间 26 明确与可行 3 从蛮力,到递增 26 有穷与随机 3 分而治之 27 不变与正确 4 减而治之 28 鲁棒与复用 5 算法 + 数据结构 = 高效率计算 5 §1F 动态规划 29 1F1. Fibonacci数 29 §1B 计算模型 6 递归 29 1B1. 图灵机 6 记忆化 29 1B2. RAM 7 线性规划 30 1F2. 最长公共子序列 31 §1C 渐近复杂度 9 LCS 31 1C1. 大O记号 9 递归 31 实例 9 子问题空间及转换模式 32 更多记号 10 记忆化 33 空间复杂度 10 动态规划 34 1C2. 多项式与可解 11 1C3. 指数与难解 12 第2章 向量 35 §1D 复杂度分析 13 §2A 抽象数据类型 36 1D1. 封底估算 13 2A1. 接口与实现 36 1D2. 级数 16 2A2. 从数组到向量 36 1D3. 可视化 17 2A3. Vector模板类 38 默认构造、析构方法 39 §1E 迭代与递归 19 基于复制的构造 40 1E1. 减而治之 19 减治 20 §2B 无序向量 41 递归跟踪与调用树 20 2B1. 插入与删除 41 空间复杂度 21 2B2. 扩容 43 递推方程 21 2B3. 均摊分析 44 数组倒置 21 加倍策略 44 1E2. 分而治之 22 递增策略 44 还是数组求和 22 缩容 45 递归跟踪 22 2B4. 查找与去重 45 忒修斯的绳线与递归深度 23 比对与比较 45 递推方程 23 顺序查找 46 A 去重 46 转移 74 2B5. 遍历 47 3B2. 复制与析构 74 深复制 74 §2C 有序向量 48 析构 75 2C1. 去重 48 3B3. 查找与去重 75 2C2. 二分查找(版本A) 50 查找 75 2C3. 二分查找(版本B) 52 去重 76 2C4. 二分查找(版本C) 53 3B4. 遍历 76 2C5. 插值查找 55 §3C 有序列表 76 §2D 起泡排序 56 去重 76 查找 77 基本版 56 提前终止版 56 §3D 选择排序 77 跳跃版 57 减而治之 77 §2E 归并排序 58 实现 78 轮换 79 分治 58 数学期望 79 二路归并 59 复杂度 60 §3E 插入排序 80 §2F 位图 61 减而治之 80 实现 80 2F1. 结构 61 性能分析 80 2F2. 应用 62 逆序对 81 去重 62 筛法 63 §3F 归并排序 82 2F3. 快速初始化 64 分而治之 82 校验环 64 二路归并 83 前缀 65 统计逆序对 83 第3章 列表 67 第4章 栈与队列 85 §3A 抽象数据类型 68 §4A 栈 86 抽象数据类型 86 3A1. 循位置访问 68 Stack模板类 86 3A2. 接口与实现 68 节点 68 §4B 调用栈 87 列表 69 4B1. 原理与空间 87 初始化 71 忒修斯的绳线 87 模拟循秩访问 71 空间效率 88 §3B 无序列表 72 4B2. 尾递归 88 3B1. 插入、删除与转移 72 4B3. 头递归 90 插入 72 §4C 栈的应用 91 删除 73 B 4C1. 括号匹配 91 第5章 二叉树 115 减而治之 91 多种括号 92 §5A 树 116 4C2. 表达式求值 93 术语 116 减而治之 93 ADT接口及实现 117 借栈缓冲 94 §5B 二叉树 118 实现 95 5B1. 性质与转换 118 4C3. 逆波兰表达式 97 求值算法 97 5B2. 实现 119 转换 98 BinNode模板类 119 BinTree模板类 120 4C4. 栈混洗 98 计数 99 §5C 遍历 122 甄别 100 5C1. 应用 122 操作序列与括号匹配 100 先序 123 §4D 队列 101 中序 123 抽象数据类型 101 后序 124 Queue模板类 101 5C2. 先序遍历 125 5C3. 中序遍历 126 §4E 队列的应用 102 轮转调度 102 5C4. 中序后继 128 前缀和 102 succ()接口 128 滑动窗口和 103 简约遍历 129 性能分析 129 §4F 双栈当队 104 5C5. 后序遍历 130 记账法 104 5C6. 层次遍历 131 向量去重 105 算法实现 131 聚合法 106 完全二叉树与满二叉树 132 势能法 106 5C7. 重建 132 向量去重 107 先序+中序 132 §4G 最大矩形 107 先序+后序 133 蛮力算法 108 §5D Huffman编码 134 单调栈 108 均摊分析 109 5D1. 问题与算法 134 单趟扫描 110 前缀无关编码 134 最优带权编码树 135 §4H 最大栈和最大队列 112 贪心策略 136 最大栈 112 5D2. 正确性 136 压缩空间 112 5D3. 算法实现 137 最大队列 113 超字符与Huffman树 137 优化入队 114 构造编码树 138 栈加队列 138 §5E 下界与最优 139 C 5E1. 比较树 139 6C1. 理想平衡与渐近平衡 149 CBA 140 6C2. 等价变换 150 下界与树高 140 5E2. 线性归约 140 §6D AVL树 151 归约 140 6D1. 渐近平衡 151 SORTING N HUFFMAN 141 SORTING N RBM 142 6D2. 失衡与重平衡 152 SD N DIAM 142 6D3. 插入 152 6D4. 删除 154 第6章 二叉搜索树 143 6D5. [3+4-2]重构 155 §6A 查找 144 6A1. 循关键码访问 144 索引 157 6A2. 中序 145 关 键 词 158 §6B 算法与实现 145 插 图 162 6B1. 查找 145 6B2. 插入 146 算 法 165 6B3. 删除 147 代 码 166 §6C 平衡 148 D 清华大学计算机系列教材 数据结构与算法 下册 邓俊辉◎编著 内 容 简 介 本书是作者及其团队在清华大学讲授算法类课程三十年的经验集成,其中的“数据结构”获评清华大 学首批“标杆课程”,慕课“数据结构”与“计算几何”已有来自 160 多个国家和地区的 100 余万人选修。 本书共 14 章,分上下两册。上册包括算法概论、向量、列表、栈与队列、二叉树、二叉搜索树共 6 章,下册包括搜索树应用、高级搜索树、词典、图基础、图进阶、优先级队列、字符串、排序共 8 章,内 容覆盖从线性到非线性的典型数据结构,以及算法设计的基本技巧、算法分析的基本方法。 本书语言精练、内容丰富,融知识性、趣味性为一体;配有大量精美的插图,以可视化的形式揭示算 法的抽象原理及复杂过程;详尽的交叉链接与索引,更令全书浑然一体,为读者提供了良好的阅读体验。 本书是计算机相关专业数据结构与算法类课程的理想教材,是研究生入学考试的重要参考用书,也可作为 计算机相关专业人员的重要参考书。 版权所有,侵权必究。举报:010-62782989,beiqinquan@tup.tsinghua.edu.cn。 图书在版编目(CIP)数据 数据结构与算法:上下册/邓俊辉编著. --北京:清华大学出版社,2026.10. (清华大学计算机系列教材). -- ISBN 978-7-302-72915-0 Ⅰ. TP311.12 中国国家版本馆CIP数据核字第20264GB020号 责任编辑:龙启铭 封面设计:邓俊辉 责任校对:李建庄 责任印制:丛怀宇 出版发行:清华大学出版社 网 址:https: www.tup.com.cn,https: www.wqxuetang.com 地 址:北京清华大学学研大厦 A 座 邮 编:100084 社 总 机:010-83470000 邮 购:010-62786544 投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn 质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn 配套资源下载:https: www.tup.com.cn,010-83470236 印 装 者:小森印刷(北京)有限公司 经 销:全国新华书店 开 本:185mm×260mm 印 张:22.25 字 数:577 千字 版 次:2026 年 10 月第 1 版 印 次:2026 年 10 月第 1 次印刷 印 数:1~2000 定 价:99.00 元(全两册) 产品编号:118607-01 a text-book must be quite exceptionally bad if it is not more intelligible than the majority of the notes taken even in good lectures. -- Jeseph John Thomson 第7章 搜索树应用 167 三种情况 186 综合评价 187 §7A 区间树 168 8A4. 算法实现 188 穿刺查询 168 接口 188 简单情况 168 伸展 188 构造算法 169 查找 189 查找算法 170 插入 189 删除 190 §7B 线段树 171 启示 171 §8B B-树 191 空间爆炸 171 8B1. 分级存储 191 BBST 172 数据爆炸与存储鸿沟 191 合并 172 分级存储与I/O 191 构造与查找算法 173 页与空间局部性 192 §7C 范围树 174 访问次序与缓存友好 192 范围查询 174 8B2. 结构 194 BBST 175 等价变换 194 MLST 176 多路平衡 195 分散级联 177 模板类 196 §7D kd-树 178 8B3. 查找 197 结构 178 算法及实现 197 查询算法 179 性能与树高 198 查询效率 180 8B4. 插入 198 上溢修复 199 第8章 高级搜索树 181 算法实现 200 8B5. 删除 201 §8A 伸展树 182 下溢修复 202 8A1. 逐层伸展 182 算法实现 204 局部性 182 §8C 红黑树 205 逐层伸展 183 坏情况 183 8C1. 动机 205 并发 205 8A2. 双层伸展 184 持久 206 LR或RL 184 LL或RR 184 8C2. 结构 206 L或R 184 颜色 206 坏情况 185 黑高度 207 (2,4)-树 208 8A3. 均摊分析 186 渐近平衡 209 势能 186 接口 209 均摊 186 A 8C3. 插入 210 §9C 排解冲突 231 RR-1 210 RR-2 211 9C1. 开放散列 231 算法实现 212 9C2. 封闭散列 232 8C4. 删除 213 试探链 232 BB-1 214 线性试探 232 BB-2R 214 BB-2B 215 实现 233 BB-3 215 9C3. 删除与查找 234 算法实现 216 9C4. 插入与重散列 235 §8D 跳转表 217 9C5. 平方试探 236 8D1. 构思与结构 217 9C6. 双向平方试探 237 确定 217 随机 218 §9D 应用 238 模板类 218 9D1. 桶排序 238 空间性能 219 9D2. 最大缝隙 239 8D2. 插入与删除 219 9D3. 基数排序 239 插入 219 9D4. 整数排序 241 删除 220 9D5. 计数排序 241 8D3. 查找及复杂度 221 算法 221 期望高度 221 第10章 图基础 243 横向跳转 222 §10A 概述 244 从线性,到非线性 244 第9章 词典 223 术语 244 §9A 散列 224 §10B 表示与实现 246 9A1. 循对象访问 224 10B1. 邻接矩阵 248 9A2. 散列原理 225 原理 248 9A3. 冲突 226 实现 248 基本操作 249 §9B 散列函数 226 增减边 250 9B1. 基本 226 增减顶点 250 评价标准与设计原则 227 枚举邻居 251 除余法 227 10B2. 邻接表 251 周期性 227 聚集 228 §10C 广度优先搜索 252 MAD法 228 10C1. 算法 252 更多 228 10C2. 实例 253 9B2. 随机数 229 10C3. 推广 254 生成随机数 229 10C4. 性质与应用 255 生成随机序列 230 9B3. 散列码 230 §10D 深度优先搜索 255 B 10D1. 算法 255 12C2. 败者树 283 10D2. 实例 256 §12D 多叉堆 284 10D3. 推广 256 PFS 284 10D4. 括号引理 257 多叉堆 285 最佳折中 285 §10E 拓扑排序 258 §12E 左式堆 286 10E1. 有向无环图:零入度策略 258 12E1. 沿藤融合 286 10E2. 以终为始:零出度策略 259 12E2. 控制藤长 287 10E3. 算法实现 259 最右侧藤、最短藤与交换 287 NLP与左式堆 287 第11章 图进阶 261 12E3. 融合算法 288 §11A 双连通分量 262 12E4. ADT基本接口 290 删除 290 11A1. 割点 262 插入 290 11A2. 准则 263 11A3. 算法 264 第13章 字符串 291 §11B Dijkstra算法 266 §13A 模式匹配 292 11B1. 优先级搜索 266 13A1. 字符串 292 11B2. 最短路径 267 13A2. 模式匹配 292 11B3. 算法实现 268 13A3. 蛮力算法 293 §11C Prim算法 270 §13B KMP算法 294 11C1. 最小支撑树 270 13B1. 原理 294 11C2. 算法实现 270 13B2. 查询表 294 13B3. 建表 296 第12章 优先级队列 273 理解 296 递推 297 §12A 概述 274 需求 274 13B4. 均摊分析 298 优先级队列 274 聚合法 298 记账法 298 §12B 完全二叉堆 275 13B5. 再改进 298 12B1. 结构 275 §13C BC策略 300 12B2. 插入 275 13C1. 以终为始 300 12B3. 删除 277 13C2. 坏字符 301 12B4. 建堆 278 13C3. 构造BC表 302 12B5. 堆排序 280 §13D GS策略 302 §12C 锦标赛树 282 13D1. 好后缀 303 12C1. 胜者树 282 C 13D2. 构造GS表 303 后向分析 316 MS后缀与SS表 303 移动次数 316 由SS表构造GS表 304 14A6. DUP划分 317 构造SS表 305 14A7. LGU划分 317 13D3. 贯通纵览 306 §14B 选取 318 §13E Karp-Rabin算法 306 14B1. 多数元素 318 13E1. 串即是数 306 14B2. 联合选取 319 13E2. 散列 307 14B3. 快速选取 321 指纹 307 冲突 307 14B4. 线性选取 322 指纹更新 308 §14C 希尔排序 323 13E3. 位宽 309 14C1. 框架与实现 323 问题规模 309 代价准则 309 14C2. 增量序列 324 Shell序列 324 §13F 键树 310 引理L 325 TRIE 310 定理K 325 PATRICIA 310 Ternary Trie 310 有序性的累积 325 14C3. 更多增量序列 326 Papernov-Stasevic序列 326 第14章 排序 311 Pratt序列 326 §14A 快速排序 312 Sedgewick序列 326 14A1. 轴点与划分 312 14A2. LUG划分 313 索引 327 14A3. 迭代与贪心 314 关 键 词 328 14A4. 递归深度 315 三者取中 315 插 图 332 期望深度 315 算 法 335 14A5. 比较与移动 316 递推分析 316 代 码 336 D
