#include<stdio.h>#include<stdlib.h>char Post[100], In[100];typedefstruct Node {char Data;struct Node* Left;struct Node* Right;}* Tree;
Tree BuildTree(char* Post,char* In,int n);voidPreOrder(Tree T);intmain(){
Tree T =NULL;char c;int n =0;
c =getchar();while(c !='\n'){
Post[n++]= c;
c =getchar();}
n =0;
c =getchar();while(c !='\n'){
In[n++]= c;
c =getchar();}
T =BuildTree(Post, In, n);printf("PreOrder:");PreOrder(T);return0;}
Tree BuildTree(char* Post,char* In,int n){if(!n)returnNULL;char* mid = In;while(*mid !=*(Post + n -1))
mid++;
Tree T =(Tree)malloc(sizeof(struct Node));
T->Data =*mid;
T->Left =BuildTree(Post, In, mid - In);
T->Right =BuildTree(Post +(mid - In), mid +1, n -(mid - In)-1);return T;}voidPreOrder(Tree T){if(T){printf(" %c", T->Data);PreOrder(T->Left);PreOrder(T->Right);}}