这是以层序遍历为基础的,稍加改造还可以求每个节点的层数
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)
}