2010-12-03 94 views
0

确定我有这样的树:通过遍历一棵树方案

   a6 
     / | \ 
     a1 a2 p1 
       / \ 
       a1  a2 

,我需要一些代码来遍历它。 在深度清单represantation它是这样的权利? (a1 a2(a1 a2))? 我已经有了一个返回childerns节点的方法。 例如,如果我打电话给它, (功能树a6)=(a1 a2 p1) 有什么想法?

回答

1

我对你到底在问什么有点阴暗,但我会尽量让你开始。

你提到的应该是这个样子的树结构的深名单表示:

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

大约一年前,我写了几篇博客文章,可能对你有用。 Trees in Scheme: RepresentationTrees in Scheme: Parsing

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

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

祝你好运。