数据结构

The Algo Reading Room

经典书目
阅读地图

先用严蔚敏对 408 章序,再用 Sedgewick 把实现走通;Weiss 盯分析口径;CLRS 用来核对证明与超纲分界。零基础先看《算法图解》;工程直觉看珠玑;面试只对题型;竞赛进阶整本超纲。不要九本同时通读。

02

书架

书名可引用原书;下面的定位是本站的阅读建议,不是出版社广告。

BOOK 01 · 主力

数据结构

国内考研常用教材 · C 语言版常见

严蔚敏 · 吴伟民

408 大纲对照

术语、章序和题型贴近统考。建议当「大纲检查表」,实现直觉用 Sedgewick 建立。

接到课程

  • 线性表 / 栈队列 / 串 → 全书 02–04
  • 树 / 图 / 查找 → 全书 05–09
  • 内排序 → 全书 10

边界:单链表删改要前驱;BST 写 O(h) 不要裸写平均对数;KMP 的 next 与 nextval 分开声明。若与本站已修正口径冲突,以全书为准。

BOOK 02 · 主力

算法

Algorithms · Fourth Edition

Robert Sedgewick · Kevin Wayne

有一门编程课 → 实现

基础、排序、查找、图,外加字符串一章作概览。本站演示的四算法、BFS/DFS、散列表按这条叙事核对实现。

接到课程

  • 基础 / 排序 → 全书 01、10,demos/sorting
  • 查找(树与散列) → 全书 06、08、09
  • 图 → 全书 07,demos/traversal · shortestpath

边界:书中 Java 代码是教学实现,稳定性与枢轴约定以本站声明为准:冒泡(相等不换)与直接插入稳定;快排平均界必须带随机输入前提。

BOOK 03 · 主力

数据结构与算法分析

Data Structures and Algorithm Analysis

Mark Allen Weiss

有 C++ 或 Java → 分析侧重

同一 ADT 用不同实现对照界。适合问「为什么链表定位是 O(n)、建堆为什么是 O(n)」。

接到课程

  • 表、栈、树 → 全书 02–06
  • 散列、优先队列 → 全书 09、10
  • 图与排序分析 → 全书 07、10

边界:摊还分析、伸展树旋转序列、配对堆细节标超纲。开放定址本站二次探查约定 h+i²,不要另写 ±i² 还不声明。

BOOK 04 · 主力 · 进阶

算法导论

Introduction to Algorithms · CLRS

Cormen · Leiserson · Rivest · Stein

课内之后 → 证明 / 超纲分界

用来核对渐进记号、分治递归、图算法正确性。408 只需薄层;摊还、红黑证明、高级数据结构本站标超纲。

接到课程

  • 基础与排序 → 全书 01、10
  • 基本数据结构与散列、BST → 全书 02–06、09
  • 图算法 → 全书 07

边界:不要把摊还势能、红黑五条性质的证明、斐波那契堆当成 408 必答。机制对错仍以全书为准。

BOOK 05 · 延伸

算法竞赛入门经典

紫书 · 题集定位

刘汝佳

课内完成之后 → 刷题

当题集,不当 408 教材。双指针、滑窗、常见 DP 模板在竞赛里有用,数据结构科目通常不单独命题。

边界:本站不提供逐章笔记。模式名超纲,数组遍历本身在纲内。活动选择等不要当 408 必答。

BOOK 06 · 延伸

编程珠玑

Programming Pearls

Jon Bentley

有课内框架 → 问题求解直觉

位图排序、写对二分、采样估算、性能取舍。珠玑讲工程直觉,CLRS 讲证明体系。

接到课程

  • 位图 vs 比较排序下界 → 全书 10
  • 折半前提(有序顺序表) → 全书 08

边界:不摘栏目原文。位图需要有界互异键,不推翻 Ω(n log n)。平均界仍要分布前提。

BOOK 07 · 延伸

剑指 Offer

面试题型实战

何海涛

课内之后 → 题型映射

按本站十章对问题类型。笔记不摘题面、不抄编号标题。

接到课程

  • 线性表 / 栈队列 / 串 / 树 / 图 / 查找 / 散列 / 排序 → 对应全书章
  • 模式展开 → patterns.html(题型模式专题)

边界:题面与约束以正版书为准。机制对错以全书为准:单链表改链要前驱、快排平均要随机前提、拓扑只对 DAG。

BOOK 08 · 延伸 · 超纲

算法竞赛进阶指南

竞赛向路线

李煜东

课内完成之后 → 整本超出 408

倍增 / ST 表、单调栈队列、DP 优化、图论进阶。打开前先接受「竞赛向、不进统考」。

接到课程

  • 课内栈队列 / 图的定义仍以全书为准
  • 证明与超纲分界 → CLRS

边界:不要把 ST 表、斜率优化、网络流默进 408。Dijkstra 非负、BF 源点可达负环等课内前提不改。

BOOK 09 · 延伸 · 前导

算法图解

Grokking Algorithms

Aditya Bhargava

入门前导读

查找、散列、图的第一印象。角色对应组成站《编码》。笔记只用文字与自绘流程,不模仿原书手绘插图。

接到课程

  • 折半 / 散列 / BFS · Dijkstra 入口 → 全书 07–09
  • 下一本 → 严蔚敏或 Sedgewick

边界:不能代替全书。KMP、B/B+、稳定性表、快排随机前提仍回全书。

03

怎么搭配

任务主读补充站内
对 408 大纲严蔚敏全书十章book.html + quiz
排序实现与稳定Sedgewick 排序Weiss 分析demos/sorting
树 / 散列Weiss + 严蔚敏CLRS 基本结构章demos/tree · hash
图的遍历与最短路Sedgewick 图CLRS 图算法(部分超纲)demos/traversal · shortestpath
工程直觉 / 写对二分珠玑CLRS 记号全书 08 / 10
面试题型(无题面)剑指 Offer 笔记patterns 专题全书十章
竞赛进阶李煜东(整本超纲)紫书题集不要带进 408
零基础前导《算法图解》严蔚敏demos 入门后