【发布时间】:2013-10-28 14:25:23
【问题描述】:
当我递归调用它时,我不确定如何在函数中将列表转换为字符串。比如我的代码如下:
(define (pre-order T)
(define (conv x)
(cond ((number? x) (number->string x))
((char? x) (string x))))
(map-diff (lambda (x) (conv x)) T)
(cond ((null? T) "")
((eq? (value T) #\+)
(cons "+" (pre-order (right T))(pre-order (left T))))
((eq? (value T) #\*)
(cons "*" (pre-order (right T))(pre-order (left T))))
((eq? (value T) #\-)
(cons "-" (pre-order (left T))))
((eq? (value T) #\/)
(cons "/" (pre-order (left T))))
(else (cons (value T) (pre-order (left T))))))
假设我的地图功能可以正常工作。我正在使用树,并且还想知道如何用前缀表示法编写算术分析树。我对算术解析树做了研究,我写了一个可以计算它们的值的函数,但是我不知道如何正确地遍历它们来解决这个问题。
【问题讨论】:
-
在这里回答我关于字符串的问题,我正在写一篇关于前序遍历的新帖子。
标签: string recursion scheme binary-tree binary-search-tree