二进制树中的方案路径

时间:2015-04-12 23:25:28

标签: scheme

我找到了一个在Scheme中找到二叉树路径的练习。 基本上,就像在Scheme中查找从树根到树叶的所有路径。 但是,不是打印节点的值,我们必须打印到达叶子的方式。 (打印:左右为右)

2 个答案:

答案 0 :(得分:0)

如果您正在讨论从根到特定叶子的路径,您基本上可以递归搜索树,并且在执行此操作时,您应该将列表作为参数传递给搜索功能,以跟踪已经采用的路径和搜索函数应返回路径列表。

例如,假设您在树中搜索L,您需要检查L是左侧还是右侧子树。在找到L所在的子树后,您基本上可以将路径添加到路径列表中,您可以执行类似

的操作
define

我们在这里做的是找到了子树L,然后将方向(左或右)添加到从该子树的父节点到L的路径的前面。当然,如果你复制并粘贴这个代码,它会不行。因此,您需要根据树表示来实现此函数,并且您可能需要为您的案例实现成员函数。我希望它有所帮助。

答案 1 :(得分:0)

(define (ab-chemin-aux AB e CH)
(if (ab-noeud? AB)
(if (equal? e (ab-etiquette AB))
CH
(or (ab-chemin-aux (ab-gauche AB) e (append CH (list "gauche")))
(ab-chemin-aux (ab-droit AB) e (append CH (list "droit")))))#f))
(define (ab-chemin AB e)
(ab-chemin-aux AB e (list)))

我找到了答案,但我忘了问这里。谢谢您的回答。希望这有助于某人