跳到正文
信奥逐课

第 244 课

队列实现 BFS

🟢 入门 约 5 分钟

一句话理解

队列实现 BFS:push 起点,while 取 front。

为什么要学

标准模板。

讲解

q.push(s); vis[s]=1; while(!q.empty()){ u=q.front(); q.pop(); for v: if !vis push }。

例子

queue<int> q;
vis[s] = 1; q.push(s);
while (!q.empty()) {
    int u = q.front(); q.pop();
    for (int v : g[u]) if (!vis[v]) {
        vis[v] = 1; q.push(v);
    }
}

进队时标记,保证每个点一次。

常见错误

练习 做完再看下一课

BFS 用的数据结构是 ____

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

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

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

左右方向键也可翻课