#include <stdio.h>
#include <stdlib.h>
#define M 255
typedef struct node{
char data;
struct node *lchild,*rchild;
}TreeNode,*BiTree;
BiTree T;
void visit(BiTree t){
printf("%c ",t->data);
}
void CreatTree(BiTree &T){
char c;
scanf("%c",&c);
if(c!='#'){
T=(TreeNode *)malloc(sizeof(TreeNode));
T->data=c;
T->lchild=T->rchild=NULL;
CreatTree(T->lchild);
CreatTree(T->rchild);
}
}
void PreOrder(BiTree t){
if(t!=NULL){
visit(t);
PreOrder(t->lchild);
PreOrder(t->rchild);
}
}
void InOrder(BiTree t){
if(t!=NULL){
InOrder(t->lchild);
visit(t);
InOrder(t->rchild);
}
}
void PostOrder(BiTree t){
if(t!=NULL){
PostOrder(t->lchild);
PostOrder(t->rchild);
visit(t);
}
}
int main(){
CreatTree(T);
printf("先序遍历:");
PreOrder(T);
printf("\n中序遍历:");
InOrder(T);
printf("\n后序遍历:");
PostOrder(T);
return 0;
}
|