和Tree Recover基本类似,就改了一点而已
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 string pr,in; 6 string postorder; 7 void process(string preord,string inord); 8 int main() 9 { 10 int line,order; 11 //freopen("D:\\acm.txt","r",stdin); 12 cin>>line; 13 while(line--){ 14 cin>>order; 15 cin>>pr>>in; 16 postorder.clear(); 17 process(pr,in); 18 cout<<postorder<<endl; 19 } 20 return 0; 21 } 22 void process(string preord,string inord){ 23 int Size = preord.size(); 24 if(Size>0){ 25 int p = inord.find(preord[0]); 26 process(preord.substr(1,p),inord.substr(0,p));//左树 27 process(preord.substr(p + 1,Size - (p + 1)),inord.substr(p + 1,Size - (p + 1)));//右树 28 postorder.push_back(preord[0]); 29 } 30 }
时间: 2024-10-09 13:47:43