package algorithm;
import java.util.Stack;
public class BinTree {
private char c;
private BinTree lchild;
private BinTree rchild;
public BinTree(char tc){
c = tc;
}
public static void preOrder(BinTree tree ){
System.out.println(tree.c);
if(tree.lchild!=null)
preOrder(tree.lchild);
if(tree.rchild!=null)
preOrder(tree.rchild);
}
public static void forOrder(BinTree tree){
Stack st = new Stack();
BinTree it = tree;
while(true){
if(it!=null)
System.out.println(it.c);
else{
if(st.size()==0)
break;
it = (BinTree)st.pop();
continue;
}
if(it.rchild!=null)
st.push(it.rchild);
it = it.lchild;
}
}
public static void main(String[] args){
BinTree b1 = new BinTree('a');
BinTree b2 = new BinTree('b');
BinTree b3 = new BinTree('c');
BinTree b4 = new BinTree('d');
BinTree b5 = new BinTree('e');
/**
* a
* / /
* b c
* / /
* d e
*/
b1.lchild = b2;
b1.rchild = b3;
b2.lchild = b4;
b2.rchild = b5;
forOrder(b1);
}
}