寻找无向图路径的算法

时间:2012-02-27 01:46:02

标签: scheme racket

在无向图中查找路径的简单算法是什么?

2 个答案:

答案 0 :(得分:2)

查找路径是否存在的最简单方法是实现depth-first search。如果您在Scheme中进行了其他类型的递归编程,则深度优先搜索将非常自然。我们的想法是,对于每个节点,如果它是您完成的目的地;否则你会对每个孩子都重复。

唯一的问题是您需要跟踪遍历期间已访问过的节点,以避免两次访问同一节点;否则,如果您有图表A< - > B - < - > C并且您正在检查A是否连接到C,您可能无限循环从A到B,然后B到A,然后是A到B,依此类推。

答案 1 :(得分:1)

此问题的答案取决于您的图表表示。典型的算法是Dijkstra算法(请注意,此算法将找到最短路径,但工作正常)。

http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

这是一个相当简单的算法,在路径查找算法中可能是最直观的。