🧭 BFS 拓扑排序 (Kahn) 入度法 · 队列
未处理
在队列中
已输出
有向箭头
🔴 当前出队节点 | 📌 入度
📝 当前动作
准备开始 BFS(Kahn 算法)
⏳ 等待排序...
1void topologicalSort() {
2 // 计算入度
3 for (int u : adj)
4 for (int v : u) indeg[v]++;
5 // 入度为0的节点入队
6 for (int i = 0; i < n; i++)
7 if (indeg[i] == 0) q.push(i);
8 while (!q.empty()) {
9 int u = q.front(); q.pop();
10 result.push_back(u);
11 for (int v : adj[u]) {
12 if (--indeg[v] == 0) q.push(v);
13 }
14 }
15 if (result.size() != n) // 存在环
16 // 报告错误
17}
速度
500ms
0 / 0