zoukankan      html  css  js  c++  java
  • 二叉树的层次遍历

    层次遍历用队列实现:

    方法一:

    int visit(BiTree T)  
    {  
        if(T)  
        {  
            printf("%c ",T->data);  
            return 1;  
        }  
        else  
            return 0;  
    }  
      
    void LeverTraverse(BiTree T)   //方法一、非递归层次遍历二叉树   
    {  
        queue <BiTree> Q;  
        BiTree p;  
        p = T;  
        if(visit(p)==1)  
            Q.push(p);  
        while(!Q.empty())  
        {  
            p = Q.front();  
            Q.pop();  
            if(visit(p->lchild) == 1)   
                Q.push(p->lchild);  
            if(visit(p->rchild) == 1)  
                Q.push(p->rchild);  
        }  
    }  

    方法二:

    void LevelOrder(BiTree BT)     //方法二、非递归层次遍历二叉树   
    {  
        BiTNode *queue[10];//定义队列有十个空间  
        if (BT==NULL)  
            return;  
        int front,rear;  
        front=rear=0;  
        queue[rear++]=BT;  
        while(front!=rear)//如果队尾指针不等于对头指针时  
        {  
            cout<<queue[front]->data<<"  ";  //输出遍历结果  
            if(queue[front]->lchild!=NULL)  //将队首结点的左孩子指针入队列  
            {  
                queue[rear]=queue[front]->lchild;  
                rear++;    //队尾指针后移一位  
            }  
            if(queue[front]->rchild!=NULL)  
            {  
                queue[rear]=queue[front]->rchild;    //将队首结点的右孩子指针入队列  
                rear++;   //队尾指针后移一位  
            }  
            front++;    //对头指针后移一位  
        }  
    }  
  • 相关阅读:
    pwm驱动原理和代码实现
    物理-引力场:百科
    物理-引力:百科
    术语-物理-超距作用:百科
    物理-量子力学-量子纠缠:百科
    un-心理学:目录
    心理学-享乐主义:百科
    un-心理学:百科
    人才-理想人才:百科
    笔记-设计-页面-普天
  • 原文地址:https://www.cnblogs.com/sooner/p/3010698.html
Copyright © 2011-2022 走看看