#include <iostream>
using namespace std;
typedef int TElemType;
const INIT_SIZE = 100;
const INCREAMENT_SIZE = 10;
typedef struct TNode
{
TElemType data;
TNode * lChild, *rChild;
}TNode,* BiTree;
int CreateBiTree(BiTree & T)
{
int data;
scanf("%d",&data);
if(!data)
T = NULL;
else
{
if(!(T = (TNode *)malloc(sizeof(TNode))))
exit(0);
T->data = data;
CreateBiTree(T->lChild);
CreateBiTree(T->rChild);
}
return 1;
}
void PreOrder(BiTree T)
{
if(T)
{
printf("%d ",T->data);
PreOrder(T->lChild);
PreOrder(T->rChild);
}
}
void InOrder(BiTree T)
{
if(T)
{
InOrder(T->lChild);
printf("%d ",T->data);
InOrder(T->rChild);
}
}
void PostOrder(BiTree T)
{
if(T)
{
PostOrder(T->lChild);
PostOrder(T->rChild);
printf("%d ",T->data);
}
}
int main()
{
freopen("in.txt","r",stdin);
BiTree T;
CreateBiTree(T);
PreOrder(T);
printf("/n");
InOrder(T);
printf("/n");
PostOrder(T);
printf("/n");
return 0;
}