#include <stdio.h>
#include <string.h>
#define maxn 100
void Build(char s1[], char s2[], char s[], int n)
{
if(n <= 0)
return;
int k = strchr(s2,s1[0]) - s2;
Build(s1+1, s2, s, k);
Build(s1 + k + 1, s2 + k + 1, s + k, n - k - 1);
s[n - 1] = s1[0]; //printf("%c",s1[0]); 直接打印,可以把s字符数组省掉,省掉后,最后要在main函数内输出 \n
}
int main()
{
char s[maxn],s1[maxn],s2[maxn];
while(scanf("%s%s",s1,s2) != EOF)
{
int len = strlen(s1);
Build(s1,s2,s,len);
s[len] = 0;
puts(s); //printf("\n"); 在上面子函数内,直接输出 二叉树后序,最后输出 回车换行
}
return 0;
}
二叉树的后序遍历
(部分来源于网络,侵删)