已知二叉树前序和中序遍历,求后序遍历。
模拟一下即可。
/*
题目链接:http://acm.tju.edu.cn/toj/showp1144.html
0'00.00" 852K
*/
/************by JBer***********/
#include<cstdio>
#include<cstring>
const int MAX = 30;
char pre[MAX], in[MAX];
void gao(const char* pre, const char* in, int length) {
if (length == 0) return;
if (length == 1) {
putchar(*pre);
return;
}
int left = strchr(in, *pre) - in; //左子树长度= =
gao(pre + 1, in, left);
gao(pre + left + 1, in + left + 1, length - left - 1);
putchar(*pre);
}
int main() {
while (~scanf(" %s %s", pre, in)) {
gao(pre, in, strlen(in));
putchar('\n');
}
return 0;
}