#include <bits/stdc++.h>
using namespace std;
char b[20],c[20];
void shu(int bl,int br,int cl,int cr)
{
cout << c[cr];
int bk; //记录根点的位置
for(int i=bl;i<=br;i++)
{
if(c[cr]==b[i])
{
bk=i;
break;
}
}
int ln=bk-bl;
int rn=br-bk;
if(ln>0)//左边有数
{
shu(bl,bl+ln-1,cl,cl+ln-1);
}
if(rn>0)//右边有数
{
shu(bk+1,bk+rn,cr-rn,cr-1);
}
}
int main ()
{
cin >> b >> c;
int l=strlen(b)-1;
shu(0,l,0,l);
return 0;
}
求先序排列(已知中序和后序求先序)
最新推荐文章于 2023-06-29 23:21:31 发布