#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define OVERFLOW -2
#define ERROR 0
typedef struct BiTNode{
int data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
int CreatBiTree(BiTree &T){
char ch;
scanf("%c",&ch);
// getchar();
if(ch == '#') T = NULL;
else{
T=new BiTNode;
T->data = ch; //先序建立 根-左-右
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
return OK;
}
//中序遍历
int InOrderTraverse(BiTree T){
if(T){
InOrderTraverse(T->lchild); //左根右
printf("%c",T->data);
InOrderTraverse(T->rchild);
}
}
int PostOrderTraverse(BiTree T){
if(T){
InOrderTraverse(T->lchild); //左根右
InOrderTraverse(T->rchild);
printf("%c",T->data);
}
}
int main(){
BiTree bt;
printf("开始建树,请输入节点:");
CreatBiTree(bt);
printf("中序遍历:");
InOrderTraverse(bt);
printf("\n");
printf("后序遍历:");
PostOrderTraverse(bt);
return 0;
}