問題 C: 二叉樹周遊(flist)
時間限制: 1 Sec 記憶體限制: 128 MB
題目描述
樹和二叉樹基本上都有先序、中序、後序、按層周遊等周遊順序,給定中序和其它一種周遊的序列就可以确定一棵二叉樹的結構。
假定一棵二叉樹一個結點用一個字元描述,現在給出中序和按層周遊的字元串,求該樹的先序周遊字元串。
輸入
輸出
樣例輸入
DBEAC
ABCDE
樣例輸出
ABDEC
提示
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
string s1,s2;
void find(int l1,int r1,int l2,int r2)
{
int i,j;
for(i=l2;i<=r2;i++)
{
int f=0;
for(j=l1;j<=r1;j++)
{
if(s2[i]==s1[j])
{
cout<<s1[j];
f=1;
break;
}
}
if(f)
break;
}
if(j>l1)
find(l1,j-1,0,r2);
if(j<r1)
find(j+1,r1,0,r2);
}
int main()
{
cin>>s1>>s2;
find(0,s1.length()-1,0,s2.length());
return 0;
}