WARNING
🧪 Beta公测版本提示:教程主体已完成,正在优化细节,欢迎大家提Issue反馈问题或建议。
algo06 图论基础 — exercise.py 练习指南
练习目标
通过四个任务掌握图的遍历、环检测、拓扑排序和二分性判断。
任务清单
任务1:BFS 最短路径
在 BFS 队列中携带 (node, distance) 元组。遇到 target 时直接返回当前距离。
任务2:DFS 环检测(无向图)
DFS 时携带 parent 参数。若遇到已访问的邻居且不是 parent,则发现环。
任务3:Kahn 拓扑排序
- 构建邻接表 + 计算入度
- 入度为 0 的顶点入队
- BFS 出队,将其后继入度减 1,入度为 0 者入队
- 结果长度 < n 则存在环
任务4:二分图检测
BFS 染色:每层交替染 0 和 1。若发现相邻同色则不是二分图。
验证
bash
cd docs/algorithms/graph/basics/code
python exercise.py源码位置
clone 后打开(相对仓库根目录):
docs/algorithms/graph/basics/code/exercise.py