码迷,mamicode.com
首页 > 其他好文 > 详细

4685: 二叉树中序遍历

时间:2018-03-01 00:50:46      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:rom   图片   ali   string   中序   int   strong   中序遍历   输出   

输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有8个......,如果某个结点不存在以0代替),比如输入:

1 2 0 3 4 -1得到的二叉树如下:

技术分享图片

输出

输出每棵二叉树的中序序列。

样例输入

 2
1 -1
1 2 0 3 4 -1

样例输出

1
3 2 4 1

提示

输出的每个节点值后有一个空格。

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int a[1005];
int flag,k;
int inorder(int n)
{
    if(n>k)
        return 0;
    inorder(2*n);
    if(a[n])
        cout<<a[n]<<" ";
    inorder(2*n+1);
}
int main()
{
    int n,m,i,j,test;
    cin>>test;
    while(test--){
        memset(a,0,sizeof(a));
        k=0;
        flag=1;
        for(;;){
        cin>>m;
        if(m==-1)
            break;
        a[++k]=m;
        }
        inorder(1);
        cout<<"\n";
    }
}

 

  遍历的时候应该从1开始

4685: 二叉树中序遍历

标签:rom   图片   ali   string   中序   int   strong   中序遍历   输出   

原文地址:https://www.cnblogs.com/ww123/p/8486181.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!