#include<iostream>
#include<vector>
using namespace std;
vector<char>post,in;
vector<char>level(100000,-1);
in N;
void ergodic(int root,int start,int end,int index){
int i == start;
if(start>end) return;
while(i<end && in[i]!=post[root])
i++;
level[index]=post[root];
ergodic(root-1-end+i,start,i-1,2*index+1);
ergodic(root-1,i+1,end,2*index+2);
}
int main(){
Cin>>N;
post.resize(N);
in.resize(N);
for(int i=0;i<N;i++)
Cin>>post[i];
for(int i=0;i<N;i++)
Cin>>in[i];
ergodic(N-1,0,N-1,0);
for(int i=0;cnt=0;i<level.size();i++){
if(level[i]!=-1){
printf("%c",level[i]);
cnt++;
}
}
return 0;
}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 »
练习:已知后序遍历和中序遍历,求层次遍历–C++实现