递归节点遍历遍历整个图形?

时间:2018-04-16 10:37:07

标签: recursion graph-theory depth-first-search breadth-first-search

我正在努力解决这个问题,但我有一些困难,因为我吮吸递归。

我的问题是:有没有办法可以在图表中选择一个节点并一直遍历到我开始的同一个节点,但是节点只能访问一次?当然还要保存遍历的结果边。

图形未加权,但它是2D x和y坐标系中的坐标,因此每个坐标都有x和y值,这意味着可以通过计算坐标之间的距离来加权边。如果这有帮助...

1 个答案:

答案 0 :(得分:0)

我不确定我是否完全理解,但这是一个建议:选择一个节点n0,然后选择一条边e =(n0,n1)。然后从图形中删除该边,并使用广度优先搜索找到从n1到n0的最短路径(如果存在)。

另一种建议可能会帮助您更好地控制结果路径的长度:选择一个起始节点n0并找到从n0发出的生成树T。删除n0,T将(希望)分解为多个分量。查找从一个组件到另一个组件的边e =(n1,n2)。然后,该边缘加上T中将n1连接到n0的边缘,再加上T中将n2连接到n0的边缘,便是具有所需属性的循环。