代码求调

P1030 [NOIP2001 普及组] 求先序排列

[已过](https://www.luogu.com.cn/record/122517018) ```cpp #include<iostream> using namespace std; string first;//前序 string mid,last;//中序,后序 int len,n; void dfs(int t,string a,string b) { string l_tree="",r_tree="",back_1tree="",back_2tree=""; int temp; int l=0,r=0,x=0; int len=a.length(); // if(t==n) // { // for(int i=0;i<len;i++) // { // cout<<first[i]; // } // return; // } first[t]=b[b.length()-1];//递归时范围要越分越小 cout<<first[t];//先输出根节点 for(int i=0;i<a.length();i++) { if(a[i]==first[t]) { temp=i; } } for(int i=0;i<temp;i++) { l_tree=l_tree+a[i];//字符串处理不能处理空位 x++; } for(int i=temp+1,j=0;i<a.length();i++,j++) { r_tree=r_tree+a[i]; } for(int i=0;i<x;i++) { back_1tree=back_1tree+b[i]; } for(int i=x;i<len-1;i++) { back_2tree=back_2tree+b[i]; } if(l_tree!="") dfs(t+1,l_tree,back_1tree); if(r_tree!="") dfs(t+1+temp,r_tree,back_2tree);//右子树在左子树的右边 } int main() { cin>>mid>>last; n=mid.length(); dfs(0,mid,last); return 0; } ```
by ABCgfed @ 2023-08-24 11:28:14


@[Accepted_please](/user/763566) ~~太折磨了~~ 可以给个关注吗 谢谢
by ABCgfed @ 2023-08-24 11:33:32


谢谢
by Accepted_please @ 2023-08-24 13:42:48


已关
by Accepted_please @ 2023-08-24 13:43:08


|