这个题目使用了递归的思想来进行解决(可以自己模拟一遍就可以豁然开朗)
我们将前序遍历中序遍历和后序遍历的笔记写入里面
C++ 代码
//这里采用递归的思想
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
string cen;
string in;
void incen(int l1,int r1,int l2,int r2)
{
int i,j;
//首先我们从层序遍历中找到最靠前的一个结点
for(i=l2;i<=r2;i++)
{
bool flage=false;
for(j=l1;j<=r1;j++)
{
if(cen[i]==in[j])
{
cout<<cen[i];
flage=true;
break;
}
}
if(flage)
{
break;
}
}
//这里是使用递归的思想来做
if(j>l1)
{
incen(l1,j-1,0,r2);
}
if(j<r1)
{
incen(j+1,r1,0,r2);
}
}
int main()
{
cin >> in>>cen;
incen(0,in.size()-1,0,cen.size()-1);
return 0;
}