Tree Recovery POJ - 2255

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tree Recovery POJ - 2255相关的知识,希望对你有一定的参考价值。

Tree Recovery POJ - 2255

根据树的前序遍历和中序遍历还原后序遍历。

(偷懒用了stl的find)

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 string s1,s2;
 5 int len;
 6 void work(int l1,int r1,int l2,int r2)
 7 {
 8     if(l1==r1)
 9     {
10         cout<<s1[l1];
11         return;
12     }
13     if(l1>r1)    return;
14     char ch=s1[l1];
15     int pos=s2.find(ch,l2);
16     int len2=pos-l2+1;
17     work(l1+1,l1+len2-1,l2,pos-1);//l2+pos-l2+1-1=pos
18     work(l1+len2,r1,pos+1,r2);
19     cout<<ch;
20 }
21 int main()
22 {
23     while(cin>>s1>>s2)
24     {
25         len=s1.length();
26         work(0,len-1,0,len-1);
27         cout<<endl;
28     }
29     return 0;
30 }

以上是关于Tree Recovery POJ - 2255的主要内容,如果未能解决你的问题,请参考以下文章

POJ 2255 Tree Recovery

POJ-2255-Tree Recovery-求后序

POJ 2255 Tree Recovery

Tree Recovery POJ - 2255

POJ 2255 -- Tree Recovery

POJ - 2255 - Tree Recovery = 二叉树遍历