确定无向图是否在两个顶点之间有路径

时间:2012-02-22 20:23:20

标签: graph scheme

我需要一个函数来确定顶点之间是否存在路径。

输入:

  • 无向图作为列表
  • 两个顶点

例如:

(is_it_a_path? '(2 ((1 2) (3 4))) 1 4)   ;; returns true

该函数也需要尾递归。

我该怎么做?

1 个答案:

答案 0 :(得分:4)

(免费在线)教科书How To Design Programs有几个部分可能对您有所帮助。

你说解决方案必须是尾递归的。如果您的意思是对搜索过程的所有调用必须处于尾部位置,那么您将必须明确地跟踪访问节点和路径到节点。

下一篇:我对你的例子感到困惑;看起来输入是......一个长度为2的列表,其中包含一个目标节点和一些图形表示?但是......不,我还是很困惑。

您需要解释输入的含义 - 例如,图表如何表示为您的函数的输入?