#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct BiNode
{
int data;
struct BiNode *lchild,*rchild;
int ltag,rtag;
}BiNode,*BiTree;
void createBiTree(BiTree &T)
{
char ch;
scanf("%s",&ch);
if(ch=='#')
T=NULL;
else
{
T=(BiNode*)malloc(sizeof(BiNode));
T->data=ch;
createBiTree(T->lchild);
createBiTree(T->rchild);
}
}
void qianprint(BiTree T)
{
if(T)
{
printf("%c\n",T->data);
qianprint(T->lchild);
qianprint(T->rchild);
}
}
void zhongprint(BiTree T)
{
if(T)
{
zhongprint(T->lchild);
printf("%c\n",T->data);
zhongprint(T->rchild);
}
}
void houprint(BiTree T)
{
if(T)
{
houprint(T->lchild);
houprint(T->rchild);
printf("%c\n",T->data);
}
}
void main()
{
BiTree T;
printf("建立一棵树,请输入树的元素以空字符结束:\n");
createBiTree(T);
printf("建立树为:\n");
printf("前序递柜遍历:\n");
qianprint(T);
printf("中序递柜遍历:\n");
zhongprint(T);
printf("后序递柜遍历:\n");
houprint(T);
}