string post="";
void proc(string pre,string ino,int left,int right,int left2,int right2){
int lc=0;
if(left>right||left2>right2) return ;
for(int i=left2;i<=right2;++i){
if(ino[i]==pre[left]) break;
lc++;
}
proc(pre,ino,left+1,left+lc,left2,left2+lc-1);
post=post+pre[left];
proc(pre,ino,left+lc+1,right,left2+lc+1,right2);
}
int main(){
string pre="abcde";
string ino="cbdae";
proc(pre,ino,0,pre.length()-1,0,ino.length()-1);
cout<<post<<endl;
system("pause");
return 0;
}
已知前序和中序找后序序列
最新推荐文章于 2024-10-12 11:04:05 发布