void build(
int n,
char*s1,
char*s2,
char*
s) {
if (n<=
0)
return;
int p = strchr(s2, s1[
0]) -
s2;
build(p, s1 +
1, s2, s);
build(n-p-
1, s1 + p +
1, s2 + p +
1, s +
p);
s[n-
1] = s1[
0];
}
int main () {
char s1[
100], s2[
100];
while(scanf(
"%s%s", s1, s2) ==
2) {
int n =
strlen(s1);
char ans[
100] = {
0};
build(n, s1, s2, ans);
ans[n] =
'\0';
printf("%s\n", ans);
}
system("PAUSE");
return 0;
}
转载于:https://www.cnblogs.com/tsubasa/archive/2012/12/05/2803989.html
相关资源:二叉树已知后序和中序遍历求前序遍历,C++代码