code: public static <T, T2 extends T> Iterator<T> preOrder(T2 root, BinTreeNavigator<T2> binTreeNav) {
  	return new PreOrderIterator<T,T2>(root, binTreeNav);
      }
docs: Returns an iterator that traverses all vertices of a binary
  tree in preorder.  The iterator is lazy: it does not construct
  an explicit list with the tree vertices in preorder; instead,
  vertices are returned one-by-one, on demand.  The time
  complexity of iterating over an entire tree is linear in the
  tree size; the space complexity is linear in the tree depth.
  
  <p>All notes for {@link #inOrder(Object,BinTreeNavigator) inOrder}
  apply to this method too.
  
  @param root The root node of the binary tree.
  
  @param binTreeNav The binary tree navigator.