While recursion is not always the best method for linked lists, it usually is the best method for trees. We don't have a problem with stack depth because depth is only O(log(n)) if the tree is balanced.
Suppose that we want to add up all the numbers in a Lisp tree.
(defun addnums (tree) (if (consp tree) ; interior node (+ (addnums (first tree)) (addnums (rest tree)) ) (if (numberp tree) ; leaf node tree 0) ) )
Suppose that we want the set of symbols in a Lisp tree.
(defun symbolset (tree) (if (consp tree) (union (symbolset (first tree)) (symbolset (rest tree)) ) (if (and tree (symbolp tree)) (list tree) '()) ) )
Contents    Page-10    Prev    Next    Page+10    Index