遍历计划中的一棵树

时间:2010-12-03 23:32:26

标签: scheme

好的我有这棵树:

              a6
           /   |  \ 
        a1    a2   p1
                 /    \
              a1       a2   

我需要一些代码来遍历它。 在深度清单中,这是对的吗? (a1 a2(a1 a2))? 我已经有了一个返回childerns节点的方法。 例如,如果我称之为, (功能树a6)=(a1 a2 p1) 任何想法?

1 个答案:

答案 0 :(得分:1)

我对你的具体要求有点暗淡,但我会尽力让你开始。

您提到的树结构的深层列表表示应如下所示:

 '(a6 (a1) (a2) (p1 (a1) (a2)))

大约一年前,我写了一些你可能觉得有用的博客文章。 Trees in Scheme: RepresentationTrees in Scheme: Parsing

在“Parsing”文章中,我演示了使用相互递归(一种递归技术,其中两个过程相互定义)来有效地解析树。这应该会有所帮助。

最后,我还建议您阅读Simply Scheme的第18章,以便对该主题进行一些详尽的介绍。

祝你好运。