章节摘要:本章解决的问题是——在进入最短路径、最小生成树、最大流这些进阶主题之前,你必须把"图"这个数据结构的语言体系建立起来。我们会讲清图的形式化定义与分类、两种主流表示法(邻接矩阵与邻接表)的取舍,以及 DFS 与 BFS 两大遍历骨架。读完本章,你应当能对任何一个实际问题做出两个判断:它是不是图问题、该用什么结构存它。
阅读完本章,你应当能够:
图是一切"关系型问题"的统一语言:先把问题翻译成图,再谈算法。

讲图的形式化定义、分类体系与核心术语。这是全书的"词汇表",后面的每一章都默认你熟悉这里的每个词。
邻接矩阵与邻接表的正面对比:空间、查询、遍历邻居三笔账一起算,并给出选型决策表。还会提到边集数组等辅助表示。
DFS 与 BFS 的执行过程、代码骨架与复杂度,以及一个关键伏笔——BFS 在无权图上就是最短路径算法,这直接通向第 2 章。
本章三节是自底向上的关系:概念定义决定你如何建模,建模方式决定存储结构,存储结构决定遍历的效率。
[1.1 概念] --建模--> [1.2 表示] --支撑--> [1.3 遍历] | | | 加权 / 方向 / 稀疏 | +----------------------------------------+ 共同构成第 2~4 章的地基
一个典型的连锁反应:社交网络好友关系是无向稀疏图(1.1),于是选邻接表(1.2),于是 BFS 找"几度人脉"时每个节点只花与度数成正比的时间(1.3)。三节的顺序不能颠倒,因为每一步的决策都依赖上一步的结论。
可以做一个小测试再决定:给你一个"好友关系 + 聊天频次"的数据集,让你判断"任意两人之间隔几个好友"和"哪几个人际圈子把整个群体切成了两半",你能不能在十分钟内说出图的表示法、遍历选择和大致复杂度。答得上,直接进第 2 章;哪里卡壳,就回对应小节补——本章三节彼此独立成篇,允许跳跃式复习。
面试里"手写图的遍历"是高频基础题,而"邻接矩阵和邻接表怎么选"则是检验工程直觉的常用追问。更深的一层是:后面章节的算法题(最短路、生成树、并查集判环)在面试中出现时,考官默认你本章的内容已经内化——遍历代码里忘了 visited、复杂度分析说不出"为什么邻接表是线性",都会被归为地基不牢。
中文资料里"顶点/节点"、"边/弧"、"深度优先/纵深优先"混用是常态,英文资料同样有 vertex 与 node 之别。建议以本书的用词为准并记住对应的常见别名,读外文资料时先扫一眼术语表再进入正文,避免在概念对译上耗神。
合上书自查五题:给"微博关注关系"选择图的分类(有向、可带权、稀疏);说明"度数之和等于两倍边数"的由来;为千万级社交图选表示法并说明理由;手推四点图上 BFS 的访问序;解释 BFS 为何天然给出无权最短路。五题全对,本章可以翻篇;任何一题迟疑超过半分钟,对应小节值得再看一遍——地基的裂缝会一路延伸到第四章的管网里。
图论术语是全书的"官方语言",本章的每个词都会在后面四章高频复用——把 1.1 的术语表存进自己的笔记,后面遇到含糊处随手回查,比每次靠猜省时得多。学习图算法最大的隐性成本不是算法本身,而是概念对齐:术语差一个字,讨论就会错位一整段。