给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度 ≤\le≤ 888)。
输入格式2 行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。
输出格式1 行,表示一棵二叉树的先序。输出时每行末尾的多余空格,不影响答案正确性
样例输入
BADC
BDCA
样例输出
ABCD
代码如下
#include<stdio.h>
#include<string.h>
char xu1[10],xu2[10];
int h;
void dfs(int x,int y,int z)
{
printf("%c",xu2[y+z]);
for(int i=0;i<h;i++){
if(xu2[y+z]==xu1[i])
{
///
if(x<i)
dfs(x,i-1,z);
if(y>i)
dfs(i+1,y,z-1);
///
}
}
}
int main()
{
scanf("%s%s",xu1,xu2);
h=strlen(xu1);
int x=0,y=h-1,z=0;
dfs(x,y,z);
}