跳到正文
信奥逐课

第 397 课

Kahn 算法

🔵 基础 约 7 分钟

一句话理解

Kahn:不断取入度 0 的点。

为什么要学

队列实现拓扑。

讲解

能取 n 个点则无环,否则有环。

例子

while (q.size()) {
    int u = q.front(); q.pop();
    for (int v : g[u]) if (--indeg[v] == 0) q.push(v);
}

类似 BFS。

常见错误

练习 做完再看下一课

Kahn 结束后取出点数 < n 说明?

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课