public class Iterator2
{
//先序遍历
public void preIterator(BiTree root)
{
if(root != null)
{
System.out.print(root.val + "-->");
preIterator(root.left);
preIterator(root.right);
}
}
//中序遍历
public void inIterator(BiTree root)
{
if(root != null)
{
preIterator(root.left);
System.out.print(root.val + "-->");
preIterator(root.right);
}
}
//后序遍历
public void postIterator(BiTree root)
{
if(root != null)
{
postIterator(root.left);
postIterator(root.right);
System.out.print(root.val +"-->");
}
}
public static void main(String[] args)
{
BiTree root = BiTree.buildTree();
Iterator2 iterator = new Iterator2();
iterator.preIterator(root);
System.out.println();
iterator.inIterator(root);
System.out.println();
iterator.postIterator(root);
}
}
public class BiTree<T>
{
T val;
BiTree left;
BiTree right;
public BiTree(T val)
{
this.val = val;
right =null;
left = null;
}
public static BiTree<String> buildTree()
{
BiTree root = new BiTree("A");
BiTree nodeB = new BiTree("B");
BiTree nodeC = new BiTree("C");
BiTree nodeD = new BiTree("D");
BiTree nodeE = new BiTree("E");
BiTree nodeG = new BiTree("G");
root.left = nodeB;
root.right = nodeC;
nodeB.left = nodeD;
nodeB.right = nodeE;
nodeC.right = nodeG;
return root;
}
}