通过层次遍历计算二叉树的宽度;
int Broad(BiTree T)
{
if (T)
{
BiTree p=NULL;
queue<BiTree> Q;
Q.push(T);
int max = 0;
while (!Q.empty())
{
int curwidth = Q.size();//当前层节点数
for (int i = 0; i < curwidth; i++)//为计算下一层节点数(宽度)做准备
{
p = Q.front();
Q.pop();
if (p->lchild)
Q.push(p->lchild);
if (p->rchild)
Q.push(p->rchild);
}
max = max > curwidth ? max : curwidth;//更新二叉树宽度
}
return max;
}
return 0;
}
计算二叉树宽度的层次遍历算法
该算法实现了一个层次遍历的方法,用于计算给定二叉树的最大宽度。通过使用队列来存储节点,并逐层推进,计算每层的节点数,最终找出最大宽度。在遍历过程中,当遇到节点时,将其左右子节点加入队列,直到队列为空,得到的宽度即为二叉树的最大宽度。
3244

被折叠的 条评论
为什么被折叠?



