有向和无向图上的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)
}
}
}
答案 0 :(得分:1)
伪代码中的实现是相同的,除了successor
的概念对于无向图表意味着邻居而对于 child (或类似的)意味着有向图。