#include <stdio.h>
#include <stdlib.h>
typedef struct tree_node
{
char data;
struct tree_node *lchild,*rchild;
}BT_Node;
BT_Node *tree;
BT_Node * Creat_BTree(BT_Node *tree)
{
char ch;
ch=getchar();
if(ch == '*')
{
tree=NULL;
}
else
{
tree=(BT_Node*)malloc(sizeof(BT_Node));
tree->data=ch;
tree->lchild=Creat_BTree(tree->lchild);
tree->rchild=Creat_BTree(tree->rchild);
}
return tree;
}
void Visit_Node(BT_Node *tree)
{
printf(" ");
putchar(tree->data);
printf("\t");
}
void Pre_Order(BT_Node *tree)
{
if(!tree)
{
return ;
}
else
{
Visit_Node(tree);
Pre_Order(tree->lchild);
Pre_Order(tree->rchild);
}
}
void Mid_Order(BT_Node *tree)
{
if(!tree)
{
return ;
}
else
{
Mid_Order(tree->lchild);
Visit_Node(tree);
Mid_Order(tree->rchild);
}
}
void After_Order(BT_Node *tree)
{
if(!tree)
{
return ;
}
else
{
After_Order(tree->lchild);
Visit_Node(tree);
After_Order(tree->rchild);
}
}
int main(void)
{
printf("请输入树结点:\n");
tree=Creat_BTree(tree);
if(tree)
{
printf("\n前序遍历:\n");
Pre_Order(tree);
printf("\n");
printf("\n中序遍历:\n");
Mid_Order(tree);
printf("\n");
printf("\n后序遍历:\n");
After_Order(tree);
printf("\n");
}
return 0;
}