非递归层次遍历查二叉树深度

来源:互联网 发布:好用的防晒霜推荐知乎 编辑:程序博客网 时间:2024/06/05 09:21
#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(){}
原创粉丝点击