zoukankan      html  css  js  c++  java
  • 【PAT甲级】1102 Invert a Binary Tree (25 分)(层次遍历和中序遍历)

    题意:

    输入一个正整数N(<=10),接着输入0~N-1每个结点的左右儿子结点,输出这颗二叉树的反转的层次遍历和中序遍历。

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 int a[17][5];
     5 bool vis[15];
     6 void bfs(int r){
     7     queue<int>q;
     8     q.push(r);
     9     cout<<r;
    10     while(!q.empty()){
    11         int now=q.front();
    12         q.pop();
    13         if(a[now][0]!=-1){
    14             cout<<" ";
    15             cout<<a[now][0];
    16             q.push(a[now][0]);
    17         }
    18         if(a[now][1]!=-1){
    19             cout<<" ";
    20             cout<<a[now][1];
    21             q.push(a[now][1]);
    22         }
    23     }
    24 }
    25 int flag=0;
    26 void dfs(int r){
    27     if(a[r][0]!=-1)
    28         dfs(a[r][0]);
    29     if(flag)
    30         cout<<" ";
    31     cout<<r;
    32     flag=1;
    33     if(a[r][1]!=-1)
    34         dfs(a[r][1]);
    35 }
    36 int main(){
    37     ios::sync_with_stdio(false);
    38     cin.tie(NULL);
    39     cout.tie(NULL);
    40     for(int i=0;i<10;++i)
    41         a[i][0]=a[i][1]=-1;
    42     int n;
    43     cin>>n;
    44     for(int i=0;i<n;++i){
    45         char x;
    46         cin.ignore();
    47         cin>>x;
    48         cin.ignore();
    49         if(x!='-')
    50             a[i][1]=x-'0',vis[x-'0']=1;
    51         char y;
    52         cin>>y;
    53         if(y!='-')
    54             a[i][0]=y-'0',vis[y-'0']=1;
    55     }
    56     int root=0;
    57     for(int i=0;i<n;++i)
    58         if(!vis[i])
    59             root=i;
    60     bfs(root);
    61     cout<<"
    ";
    62     dfs(root);
    63     return 0;
    64 }
    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    C++primer习题3.13
    Indesign技巧
    《转载》虚函数在对象中的内存布局
    C++new失败后如何处理
    sizeof的用法
    转载 C++中虚继承防止二义性
    字符串反转
    回文写法
    C++术语
    QT+VS2008
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11972744.html
Copyright © 2011-2022 走看看