获取所有子节点,无循环仅递归

时间:2013-01-10 06:16:19

标签: functional-programming

有人可以提供伪代码吗?我不能用,等等。我只能调用我的功能。

1 个答案:

答案 0 :(得分:1)

如果要获取任意二叉树节点的所有子节点,可以执行以下操作:

(define (traverse node)
  (cond ((null? node) '())
        ((not (pair? node)) node)
        (else (cons (traverse (left-child node))
                    (traverse (right-child node))))))

对于N-ary树,您可以使用get-child函数,而不是左右子函数。