给定图形,如何在图形中的两个节点之间找到长度为X的路径。理想情况下,路径最多只能访问一次。
答案 0 :(得分:0)
您可以实施修改后的BFS算法。一旦找到从A到B的第一条路径,您就拥有所述路径的最小长度,因此如果X小于此值,您就已经知道现在有路径。
如果X大于此值,请按以下步骤操作:浏览刚刚找到的A到B的路径,并使用它与B的距离注释每个节点。
然后,继续进行BFS搜索,直至覆盖整个图表。
每次你的搜索到达一个已经使用过的节点时,你都可以看到它是否通向B,如果是,它会离它有多远。这使您可以知道刚刚找到的新路径的长度,并且可以与X进行比较。
再次,使用它与B的距离来注释此路径中的每个节点。您应该允许对节点进行多次注释,并且一旦您点击通向B的已使用节点,请使用所有注释值进行比较。说节点。
每当您点击长度大于X的路径时,您都可以停止搜索。