- 求二叉树的先序序列
- 2016-11-13 20:30:44 @
#include<cmath>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
char a[110],b[110];
int sum,len,k[110],f[110][110];
void dfs(int l,int r)
{
if(l>r)return ;
sum++;
f[l][r]=k[b[len-sum+1]-'A'+1];
dfs(f[l][r]+1,r);
dfs(l,f[l][r]-1);
}
void solve(int l,int r)
{
if(l>r)return ;
printf("%c",a[f[l][r]]);
solve(l,f[l][r]-1);
solve(f[l][r]+1,r);
}
int main()
{
scanf("%s",a+1);
scanf("%s",b+1);
len=strlen(a+1);
for(int i=1;i<=len;i++)k[a[i]-'A'+1]=i;
sum=0;dfs(1,len);
solve(1,len);
}
0 条评论
目前还没有评论...