2010-12-03 108 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章,對該主題進行一些深入的介紹。

祝你好運。