原理 · 代码 · 动画
图算法可视化教程
学习图算法的 7 个交互课程,包括广度优先遍历、深度优先遍历、Dijkstra 最短路径、拓扑排序等内容。结合原理、执行步骤、代码和动画理解实现过程。
图算法7 个课程
广度优先遍历
使用队列逐层访问图节点,并在入队时标记已发现节点。
深度优先遍历
沿一条分支深入,在访问完邻接节点后回溯。
Dijkstra 最短路径
确定当前距离最小的节点,再松弛它的出边。
拓扑排序
将入度为零的节点依次移出,形成依赖执行顺序。
Kruskal 最小生成树
按权重尝试连接两个分量,使用并查集排除形成环的边。
A* 寻路
按已走步数与到终点的估计步数之和,选择下一格进行扩展。
Floyd 最短路径
逐个允许顶点作为中间节点,更新任意两点之间的最短距离。