通过顶点

时间:2015-06-05 16:45:32

标签: algorithm graph directed-graph breadth-first-search

编写一个算法,给定图G和G的顶点t,返回 由t确定相等距离(非无限)的顶点集。

图表G如下:

enter image description here

考虑到t = A,算法应返回:

  • 距离0处的顶点集:{A}
  • 距离1处的顶点集:{B,D}
  • 距离为2的顶点集:{E,F}
  • 距离3处的顶点集:{C}
  • 距离为4的顶点集:{}
  • 距离为5的顶点集:{}

我认为该算法可以通过对宽度算法的简单修改来实现,该算法总结了所有顶点距源顶点的距离。 我该如何编写伪代码?我有点困惑..

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以使用以下伪代码:(您可以通过将每个节点的distance属性设置为father.distance + 1来保存BFS中源节点的距离,并且初始节点的距离为0。每个节点的初始距离是无限的)

 BFS(G,targetNode), remember to save all the distances for each node.

 for i = 0 to G.v.size

     print "nodes with distance i :"

     for each Vertex v in G:

         if v.distance == i

             print v