2012-02-22 110 views
-2

我需要一个函数来确定顶点之间是否存在路径。确定无向图具有两个顶点之间的路径

输入:

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

例如:

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

功能也需要尾递归。

我该怎么做?

+0

请具体定义“路径”。 – amindfv 2012-02-23 21:22:06

回答

4

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

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

下一个:我很困惑你的榜样;它看起来像输入是...一个长度为2的列表,包含一个目标节点和图形的某种表示形式?但是......不,我仍然感到困惑。

您需要解释输入意味着什么 - 例如,图表如何表示为函数的输入?

相关问题