Johannes Ahl-mann <[EMAIL PROTECTED]> wrote:

> a non-recursive solution to traversing a recursive data type is bound to
> get ugly, isn't it?

Not necessarily: sometimes using an explicit stack can be quite pretty,
depending.  E.g.:

def all_leaves(root):
    stack = [root]
    while stack:
        rightmost = stack.pop()
        if is_leaf(rightmost):
            yield rightmost
        else:
            stack.extend(rightmost.all_children())

This isn't the traversing you're looking for, but it is _a_ traversing
of a recursive data type, non-recursive, and IMHO quite pretty.


Alex
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to