zoukankan      html  css  js  c++  java
  • [数据结构复习]层序建立二叉树

    解题关键:建树的时候用stl或者递归建立就好,不用苦苦的手写栈和队列。重要的是思维。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    struct node{
        int x;
        node *l,*r;
    }tr;
    int num,tmp=0;
    node* bfs(){
        node *t=new node();
        tmp++;
        scanf("%d",&t->x);
        queue<node*>que;
        que.push(t);
        while(!que.empty()){
            node *t1=que.front();
            que.pop();
            tmp++;
            if(tmp>num) break;
            node *t2=new node();
            scanf("%d",&t2->x);
            t1->l=t2;
            que.push(t2);
            tmp++;
            if(tmp>num) break;
            node *t3=new node();
            scanf("%d",&t3->x);
            t1->r=t3;
            que.push(t3);
        }
        return t;
    }
    void bfs2(node *root){
        queue<node*>que;
        que.push(root);
        while(!que.empty()){
            node *ss=que.front();
            que.pop();
            printf("%d ",ss->x);
            if(ss->l) que.push(ss->l);
            if(ss->r) que.push(ss->r); 
        }
    }
    int main(){
        num=8;
        node *s=bfs();
        bfs2(s);
    }
  • 相关阅读:
    redis哨兵高可用
    数据库主从搭建
    docker 补充
    docker 进阶操作
    docker 简介
    数据可视化(Matplotlib)
    数据操作
    pandas练习
    Pandas简介
    python mysql utf-8 latin
  • 原文地址:https://www.cnblogs.com/elpsycongroo/p/8798671.html
Copyright © 2011-2022 走看看