这题开始我想着用emumerate-tree来做,但是这样做根本就不需要accumulate,后来上网看了别人的做法,我对于递归的理解实在是太浅显。
(define (accumulate op initial sequence)
(if (null? sequence)
initial
(op (car sequence)
(accumulate op initial (cdr sequence)))))
(define (count-leaves t)
(accumulate +
0
(map (lambda (sub-t)
(if (pair? sub-t)
(count-leaves sub-t) 1))
t)))
(newline)
(display (count-leaves (list 1 (list 2 (list 3 4)) 5)))
(newline)
(display (count-leaves (list (list 1 2) (list 3 (list 4 5) 6))))
递归与树遍历
本文探讨了使用递归方法解决树形结构中叶子节点计数的问题,通过具体代码示例展示了如何利用Scheme语言实现这一过程,并对比了不同实现方式。
4423

被折叠的 条评论
为什么被折叠?



