这是以层序遍历为基础的,稍加改造还可以求每个节点的层数
int depth(Btree *T)
{
Queue q;//需要用到队列
int count;//用来记录每一层的节点数
int tmp;//临时记录每层节点数
int depth = 0;//深度
q.enqueue(T);
do
{
tmp = 0;
for(int i = 0; i<count; i++)
{
T = q.front();
if(!isEmpty(T->lchild))
{
tmp++;
q.enqueue(T->left);//入队
}
if(!isEmpty(T->rchild))
{
tmp++;
q.enqueue(T->rchild);
}
q.dequeue(T);//出队
}
depth++;
count = tmp;
}
while(count != 0)
}
本文介绍了一种基于层序遍历的算法来计算二叉树的深度,并通过队列实现节点逐层访问,记录每层节点数量,直至队列为空。
8224





