#include<stdio.h>
#include<stdlib.h>
#define ElemType int
typedef struct BiTNode{
ElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode,*BiTree;
int CreateBiTree(BiTree* t)
{
char ch;
scanf("%c",&ch);
if(ch==' ')
(*t)=NULL;
else
{
(*t) = (BiTNode*)malloc(sizeof(BiTNode));
if(!(*t))
return 0;
(*t)->data = ch;
CreateBiTree(&(*t)->lchild);
CreateBiTree(&(*t)->rchild);
}
return 1;
}
void preOrderDisplay(const BiTree* t)
{
if((*t)==NULL)
return;
printf("%c",(*t)->data);
preOrderDisplay(&(*t)->lchild);
preOrderDisplay(&(*t)->rchild);
}
void inOrderDisplay(const BiTree* t)
{
if((*t)==NULL)
return;
inOrderDisplay(&(*t)->lchild);
printf("%c",(*t)->data);
inOrderDisplay(&(*t)->rchild);
}
void afterOrderDisplay(const BiTree* t)
{
if((*t)==NULL)
return;
afterOrderDisplay(&(*t)->lchild);
afterOrderDisplay(&(*t)->rchild);
printf("%c",(*t)->data);
}
int main()
{
BiTree t;
int iRes = CreateBiTree(&t);
printf("******the returned result : %d\n",iRes);
printf("\n*********preOrderDisplay*********\n");
preOrderDisplay(&t);
printf("\n*********inOrderDisplay**********\n");
inOrderDisplay(&t);
printf("\n*********afterOrderDisplay*******\n");
afterOrderDisplay(&t);
return 1;
}