#include <iostream>
#include <cstring>
#include <malloc.h>
using namespace std;
typedef struct TreeNode{
char data;
struct TreeNode *lchild;
struct TreeNode *rchild;
} Node, *PNode;
char preOrder[28];
char midOrder[28];
char *Pr;
void build(char *pre, char *mid,PNode *T);
void postOrder(PNode T);
int main(){
PNode T;
while(scanf("%s %s", preOrder, midOrder) != EOF){
build(midOrder, preOrder, &T);
postOrder(T);
cout<<endl;
}
return 0;
}
void build(char *in, char *pr, PNode *tr){
char *p = in;
Pr = pr;
if(*in == 0){
*tr = NULL;
return ;
}
while(1){
if(*in == *Pr){
(*tr) = (PNode)malloc(sizeof(Node));
(*tr)->data = *Pr;
*in = 0;
break;
}
++in;
}
Pr = Pr + 1;
build(p, Pr, &(*tr)->lchild);
build(in+1, Pr, &(*tr)->rchild);
}
void postOrder(PNode T){
if(T == NULL){
return ;
}
postOrder(T->lchild);
postOrder(T->rchild);
printf("%c",T->data);
}
POJ 2255(理解别人的代码的)
最新推荐文章于 2018-09-24 15:57:18 发布