C语言数据结构代码练习day22
做做王道的题
设一棵二叉树采用二叉链表的存储方式,设计一个非递归的求二叉树高函数
int btdeepth(Bitree T){
if(T==NULL)
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++; //层数+1
last=rear; //last指向下一层
}
}
return level;
}