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

    #include<iostream>
    #include<queue>
    using namespace std;
    
    struct Node
    {
        int data;      //节点中的数据
     Node* lChild;  //左子指针
     Node* rChild;  //右子指针
    };
    void PrintNodeByLevel(Node* root)//root,二叉树的根节点
    {
      int cur=0,last=0,count=0;//cur记录当前处理队列中的第几个元素,last记录当前处理行中最后一个元素是第几个要被遍历的元素,count记录当前队列中共有多少元素
      queue<Node*> q;
      Node* r=root;
      q.push(r);
      last++;
      count++;
      while(!q.empty())
      {
       Node* temp=q.front();
       if(temp->lChild!=NULL)
       {
        q.push(temp->lChild);
        count++;
       }
       if(temp->rChild!=NULL)
       {
        q.push(temp->rChild);
        count++;
       }
             q.pop();
       cout<<temp->data<<" ";
       cur++;
       if(cur==last)
       {
            cout<<endl;
         last=count;
       }
      }
    
    }
    int main()
    {
        Node* r=new Node();
     r->data=1;
     r->lChild=NULL;
     r->rChild=NULL;
     Node* p=new Node();
     p->data=2;
     p->lChild=NULL;
     p->rChild=NULL;
     Node* q=new Node();
     q->data=3;
     q->lChild=NULL;
     q->rChild=NULL;
     r->lChild=p;
     r->rChild=q;
     Node* s=new Node();
     s->data=4;
     s->lChild=NULL;
     s->rChild=NULL;
     Node* h=new Node();
     h->data=5;
     h->lChild=NULL;
     h->rChild=NULL;
     p->lChild=s;
     p->rChild=h;
     Node* c=new Node();
     c->data=6;
     c->lChild=NULL;
     c->rChild=NULL;
     q->rChild=c;
     Node* d=new Node();
     d->data=7;
     d->lChild=NULL;
     d->rChild=NULL;
     Node* f=new Node();
     f->data=8;
     f->lChild=NULL;
     f->rChild=NULL;
     h->lChild=d;
     h->rChild=f;
        PrintNodeByLevel(r);
        system("pause");
     return 0;
    }
    

      

  • 相关阅读:
    洛谷1968美元汇率 dp
    洛谷luogu2782
    题解 AT2243 【正方形のチップ】
    [HAOI2006]聪明的猴子 题解
    D:苏卿念发红包
    c++小游戏——扫雷
    c++小游戏——拯救公主
    c++小游戏——三国杀
    C++小游戏——井字棋
    c++小游戏——杀手
  • 原文地址:https://www.cnblogs.com/yanglf/p/2774041.html
Copyright © 2011-2022 走看看