#include<stdio.h>
#include<malloc.h>
typedef struct BiNode{
char data;
struct BiNode *lchild, *rchild;
}BiNode;
char getval(char *str){
static int i=0;
return str[i++];//*(str+i++);
}
void create(BiNode **bt,char *str){ //创建二叉树
char ch=getval(str);
if(ch=='#'){
(*bt)=NULL;
}else{
(*bt)=(BiNode *)malloc(sizeof(BiNode));
(*bt)->data=ch;
create(&((*bt)->lchild),str);
create(&((*bt)->rchild),str);
}
return;
}
void preOrder(BiNode *bt){ //前序遍历
if(bt==NULL){
printf("#");
return;
}
else{
printf("%c",bt->data);
preOrder(bt->lchild);
preOrder(bt->rchild);
}
}
void inOrder(BiNode *bt){ //中序遍历
if(bt==NULL){
printf("#");
return;
}
else{
inOrder(bt->lchild);
printf("%c",bt->data);
inOrder(bt->rchild);
}
}
void postOrder(BiNode *bt){ //后续遍历
if(bt==