#include<stdio.h>
#include<iostream>
using namespace std;
struct BitreeNode{
int value;
BitreeNode *left,*right;
};
BitreeNode creat(BitreeNode *&t)
{
int ch;
scanf("%d",&ch);
if(ch==0) //以0为结束判断
t=NULL;//根为则判为空树
else
{
t=new BitreeNode;
t->value=ch;
creat(t->left);
creat(t->right);
}
}
void xshow(BitreeNode *t)//先序遍历
{
if(t!=NULL)
{
printf("%d\t",t->value);
xshow(t->left);
xshow(t->right);
}
}
void zshow(BitreeNode *t)//中序遍历二叉树
{
if(t!=NULL)
{
zshow(t->left);
printf("%d\t",t->value);
zshow(t->right);
}
}
void hshow(BitreeNode *t)////后序遍历二叉树
{
if(t!=NULL)
{
hshow(t->left);
hshow(t->right);
printf("%d\t",t->value);
}
}
int main()
{
BitreeNode *t;
creat(t);
xshow(t);
zshow(t);
hshow(t);
return 0;
}