如何在无向图上运行BFS后构建BFS树?

时间:2015-01-30 02:53:38

标签: algorithm graph tree breadth-first-search

我有一个无向图,从中我重新绘制了相同的图形,但是采用树状结构(带有水平)。我知道广度优先搜索(BFS)算法是如何工作的,但我不知道如何从图中转换 - >树。

this Wikipedia article中,如果向下滚动一下,你会看到德国城市的两张照片。即使在那里阅读了pseduo代码之后,我也不了解你是如何从第一张图片到第二张图片的。

1 个答案:

答案 0 :(得分:0)

从图中获取BFS树的一种标准方法是运行BFS,并且在执行此操作时,保留一个表,将图中的每个节点映射到树中的父节点。您按如下方式填充它:源节点没有父节点(毕竟它是根节点)。然后,每当您处理一个节点u并探索其中一个未探索的邻居v时,您将v的父级设置为u。尝试在一些小例子上对此进行追踪,你会发现这隐含地构建了树,除了边缘向后(边缘指向从孩子到父母而不是相反)。然后,您可以反转边缘以返回BFS树。

希望这有帮助!