int Btdepth(BiTree T){
//层次遍历的非递归算法求二叉树的高度
if(!T){
return 0;
}
int front=-1,rear=-1;
int last=0,level=0;
BiTree Q[MaxSize];
Q[++rear]=T;
BiTree p;
while(front<rear){
p=Q[++front];
if(p->lchild){
Q[++rear]=p->lchild;
}
if(p->rchild){
Q[++rear]=p->rchild;
}
if(front==last){
level++;
last=rear;
}
}
return level;
}
int BiTreedepth2(BiTree T){
//层次遍历的递归算法求二叉树的高度
if(T==NULL){
return 0;
}
ldept=BiTreedepth2(T->lchild);
rdept=BiTreedepth2(T->rchild);
if(ldept<rdept){
return ldept+1;
}else{
return rdept+1;
}
}