#include<stdio.h>
#include<malloc.h>
typedef char ElemType;
typedef struct TreeNode *BinTree;
struct TreeNode{
ElemType data;
BinTree left, right;
};
BinTree CreateBinTree(){ //根据前序遍历创建树
char ch;
BinTree BT;
scanf("%c", &ch);
if (ch != '#'){
BT = (BinTree)malloc(sizeof(struct TreeNode));
BT->data = ch;
BT->left = CreateBinTree();
BT->right = CreateBinTree();
}
else {
BT = NULL;
}
return BT;
}
void preBinTree( BinTree BT ){ //先序遍历
if (BT) {
printf("%c", BT->data);
preBinTree(BT -> left);
preBinTree(BT -> right);
}
}
void middleBinTree( BinTree BT ){ //中序遍历
if (BT) {
middleBinTree(BT -> left);
printf("%c", BT->data);
middleBinTree(BT -> right);
}
}
void postBinTree( BinTree BT ){ //后序遍历
if (BT) {
postBinTree(BT -> left);
postBinTree(BT -> right);
printf("%c", BT->data);
}
}
int main(){
printf("请输入二叉树序列:\n");
BinTree BT = CreateBinTree();
printf("前序遍历二叉树:\n");
preBinTree(BT);
printf("\n中序遍历二叉树:\n");
middleBinTree(BT);
printf("\n后序遍历二叉树:\n");
postBinTree(BT);
return 0;
}
**
测试
**
输入:ABC##DE#G##F###