先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列

题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1291

以前的一个题,贴下代码;

 1 #include<stdio.h>
 2 #include<string.h>
 3 char ans[100];
 4 
 5 void build(int n, char *s1, char *s2, char *s)
 6 {
 7     if(n <= 0)  return;
 8     int p = strchr(s2, s1[0])-s2;
 9     build(p, s1+1, s2, s);
10     build(n-p-1, s1+p+1, s2+p+1, s+p);
11     s[n-1]=s1[0];//将根节点添加到最后
12 };
13 
14 int main()
15 {
16     int k,t;
17     char s1[100], s2[100];
18     gets(s1);
19     gets(s2);
20     k=strlen(s1);
21     build(k, s1, s2,ans);
22     printf("%s
",ans);
23     return 0;
24 }
原文地址:https://www.cnblogs.com/bfshm/p/3166010.html