#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct BiTNode {
char data;
struct BiTNode *lchild, *rchild;
}*BiTree,BiTNode;
void create(BiTree *T) {
char ch;
cin >> ch;
if (ch ==','){
*T=NULL;
}
else {
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = ch;
create(&(*T)->lchild);
create(&(*T)->rchild);
}
}
void Preorder(BiTree T) {
if (T == NULL)
return;
cout << T->data;
Preorder(T->lchild);
Preorder(T->rchild);
}
void Inorder(BiTree T) {
if (T == NULL)
return;
Inorder(T->lchild);
cout << T->data;
Inorder(T->rchild);
}
void Postorder(BiTree T) {
if (T == NULL)
return;
Postorder(T->lchild);
Postorder(T->rchild);
cout << T->data;
}
int main() {
BiTree T = NULL;
cout << "以前序遍历的顺序输入二叉树数组" << endl;
create(&T);
cout << "前序遍历二叉树" << endl;
Preorder(T);
cout << endl;
cout << "中序遍历二叉树" << endl;
Inorder(T);
cout << endl;
cout << "后序遍历二叉树" << endl;
Postorder(T);
cout << endl;
return 0;
}