Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 25th, 2012  |  syntax: None  |  size: 0.64 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. postorder using tail recursion
  2. public static final <T> void postorder(Tree<T> root) {
  3.     Stack<Tree<T>> stack = new Stack<Tree<T>>();
  4.     Stack<Tree<T>> traversal = new Stack<Tree<T>>();
  5.     stack.push(root);
  6.     while (!stack.isEmpty()) {
  7.       Tree<T> node = stack.pop();
  8.       if (node.right != null)
  9.         stack.push(node.right);
  10.       }
  11.       if (node.left != null) {
  12.         stack.push(node.left);
  13.       }
  14.       traversal.push(node);
  15.     }
  16.     while (!traversal.isEmpty()) {
  17.       System.out.println(traversal.pop().value.toString());
  18.     }
  19.   }
  20.        
  21. public class StackElement<T> {
  22.     public Tree<T> node;
  23.     public int numTraversedChildren;
  24. }