#include <iostream>
#include<algorithm>
#include<stdlib.h>
using namespace std;
int node[1005],n;
int i;
typedef struct tree{
int data;
struct tree *lchild,*rchild;
}tree,*btree;
void creatree(tree *&t,int x){
if(node[x]==0){
t==NULL;
return ;
}
t=(tree*)malloc(sizeof(tree));
t->data=node[x];
creatree(t->lchild,2*x);
creatree(t->rchild,2*x+1);
}
void inorder(tree *t){
if(t!=0){
printf(" %d",t->data);
inorder(t->lchild);
inorder(t->rchild);
}
}
int hightree(tree *t){
int ldeep,rdeep;
int deep=0;
if(t==NULL) return 0;
ldeep=hightree(t->lchild)+1;
rdeep=hightree(t->rchild)+1;
return deep=ldeep>rdeep?ldeep:rdeep;
}
int main()
{
tree *t;
t=NULL;
cin>>n;
int x;
while(n--){
i=1;
while(scanf("%d",&x)&&x!=-1){
node[i]=x;
i++;
}
creatree(t,1);
int len=hightree(t);
cout<<len;;
inorder(t);
cout<<endl;
}
return 0;
}
codeup2445先序遍历
最新推荐文章于 2024-07-24 17:46:08 发布