#include<bits/stdc++.h>
#define endl '\n'
#define INF 0x3f3f3f3f
#define ll long long
using namespace std;
const int N=1010;
string pre,mid;
struct node
{
char dat;
int l,r;
}tr[N];
int now,tot;
int rebuild(int l,int r)
{
if(l>r)return 0;
int m;
for(int i=l;i<=r;i++)
{
if(pre[now]==mid[i])
{
m=i;
break;
}
}
tr[++tot].dat=pre[now++];
int root=tot;
tr[root].l=rebuild(l,m-1);
tr[root].r=rebuild(m+1,r);
return root;
}
void finalprint(int root)
{
if(root)
{
finalprint(tr[root].l);
finalprint(tr[root].r);
cout<<tr[root].dat;
}
}
int main()
{
cin>>pre>>mid;
tot=now=0;
int root=rebuild(0,pre.size()-1);
finalprint(root);
return 0;
}
B - 数据结构上机测试4.1:二叉树的遍历与应用1
最新推荐文章于 2024-10-12 20:00:42 发布