您的位置:首页 > 编程语言

POJ 2255(理解别人的代码的)

2017-12-08 21:33 218 查看
#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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: