1、非递归中序遍历:遇到一个结点,就把它推入栈中,并去遍历它的左子树。遍历完左子树后,从栈顶托出这个结点并访问之,然后按照它的右链接指示的地址再去遍历该结点的右子树。
public void inorder(BinTree bt){
bittree p, s[M];
int top = -1;
p= bt;
do{
while(p!=null){
s[++top] = p;
p = p.lchild;
}
if(top >= 0){
p = s[top--];
visit(p);
p = p.rchlid;
}
}while(top != -1 || p!= null);
}