#include<stdio.h>
typedef struct BiTree{
int data;
struct BiTree *lchild,*rchild;
}BiTNode,*BiTree;
int Btdepth(BiTree T)
{
if(!T)
return 0; //树空,高度为0
int front=-1,rear=-1;
int last = 0,level =0; //last指向下一层第一个
BiTree Q[Maxsize]; //设置队列Q,元素是二叉树结点指针且容量足够
Q[++rear] = T; //将根结点入队
BiTree p;
while(front<rear) //队不空,则循环
{
4 p = Q[++front]; //队列元素出队,即正在访问的结点
if(p->lchild)
{
Q[++rear] = p->lchild; //左孩子入队
}
if(p->rchild)
{
Q[++rear] = p->rchild; //右孩子入队
}
if(front == last) //处理该层最右结点
{
level++; //层数加一
last = rear; //last指向下一层
}
}
return level;
}
int main()
{
}
非递归层次遍历查二叉树深度
最新推荐文章于 2023-01-09 22:09:44 发布