grbfs.c

来自「经典c++程序的实现」· C语言 代码 · 共 17 行

C
17
字号
void BFS(Graph& G, int start) {
  Queue Q(G.n());
  Q.enqueue(start);
  G.Mark[start] = VISITED;
  while (!Q.isEmpty()) {
    int v = Q.dequeue();
    PreVisit(G, v);           // Take appropriate action
    for (Edge w = G.first(v); G.isEdge(w); w = G.next(w))
      if (G.Mark[G.v2(w)] == UNVISITED) {
        G.Mark[G.v2(w)] = VISITED;
        Q.enqueue(G.v2(w));
      }
    PostVisit(G, v);          // Take appropriate action
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?