图系列
共 15 篇 · 建议按顺序阅读

第 1 篇 · 图系列第 1 篇:图的基本概念——从地图与关系到图
顶点、边、有向、无向、权重、度:用地图导航、社交网络、课程依赖三个例子把图的基本概念全部讲透。
第 2 篇 · 图系列第 2 篇:路径、环与连通性
路径、简单路径、环、连通、连通分量、桥与割点:用图把“关系网络”的结构语言全部讲清楚。
第 3 篇 · 图系列第 3 篇:图的存储——邻接矩阵、邻接表与边集
同一张图在内存里怎么放?邻接矩阵、邻接表、边集数组三种方案逐一拆解,比较空间与每种操作的代价。
第 4 篇 · 图系列第 4 篇:广度优先搜索 BFS
从起点一圈一圈往外扩:BFS 的队列机制、visited 的作用、手算走查、最短步数应用与复杂度,全部配图讲透。
第 5 篇 · 图系列第 5 篇:深度优先搜索 DFS
一路走到黑再回头:DFS 的递归与栈视角、前序后序、DFS 树、时间戳,以及与 BFS 的全面对比。
第 6 篇 · 图系列第 6 篇:BFS/DFS 的应用——连通分量、二分图与环
学会遍历之后能做什么?连通分量统计、二分图染色判定、环检测、洪水填充,四个经典应用全部图解。
第 7 篇 · 图系列第 7 篇:拓扑排序与 DAG
先修课、构建流程、任务调度都靠它:DAG 与拓扑排序的 Kahn 算法、DFS 后序写法、环检测与完整手算。
第 8 篇 · 图系列第 8 篇:最短路径——从 BFS 到 Dijkstra
无权图用 BFS、带权图怎么办?从“为什么 BFS 不能直接用于带权图”出发,自然引出 Dijkstra 的贪心思想与完整手算。
第 9 篇 · 图系列第 9 篇:Dijkstra 深入——堆优化与实现细节
Dijkstra 的正确性直觉、优先队列优化、路径还原、懒惰删除与常见 bug:把这一个算法吃到透。
第 10 篇 · 图系列第 10 篇:Bellman-Ford 与负环
Dijkstra 怕负权,Bellman-Ford 不怕:松弛 V-1 轮为什么够、负环怎么检测、SPFA 又是什么,全部图解。
第 11 篇 · 图系列第 11 篇:Floyd-Warshall——多源最短路
一次算出所有点对最短路的 DP 算法:中间点递推、三层循环、负环检测、路径还原与传递闭包。
第 12 篇 · 图系列第 12 篇:最小生成树——Kruskal 与 Prim
用最少的线连通所有点:切分定理、Kruskal 的边贪心与并查集、Prim 的点贪心与优先队列,两个算法一次讲透。
第 13 篇 · 图系列第 13 篇:强连通分量——Kosaraju 与 Tarjan
有向图里的“互相可达集团”:SCC 定义、两次 DFS 的 Kosaraju、一次 DFS 的 Tarjan,以及缩点成 DAG 的妙用。
第 14 篇 · 图系列第 14 篇:网络流——最大流最小割
管道能送多少水?流网络、残量图、增广路径、Edmonds-Karp 与最大流最小割定理,用配水管网讲透最大流。
第 15 篇 · 图系列第 15 篇:二分图匹配与图算法综合实战
用增广路给任务配对,再回到真实世界:拿到一个图问题该怎么选算法?完整决策树与系列总结收官。