广度优先遍历有向图与无向图

breadth first traversal directed vs undirected graph

有向图和无向图上的 bfs 在实现上有何不同。

我在网上找到了以下伪代码。我对无向图没问题。但不知道如何为有向图实现它。

 frontier = new Queue()
  mark root visited (set root.distance = 0)
  frontier.push(root)
  while frontier not empty {
     Vertex v = frontier.pop()
    for each successor v' of v {
    if v' unvisited {
        frontier.push(v')
        mark v' visited (v'.distance = v.distance + 1)
    }
    }
  }

伪代码中的实现是相同的,除了 successor 的概念对于无向图意味着 neighborchild(或类似的)用于有向图。