Tree(uva 536)

  先声明,我还在学习中,这个题大部分代码借鉴的大佬的,其实这算是比较经典二叉树题了,关键在于递归建树。

   代码附上:

 

 
 1 #include <iostream>  
 2 #include <cstring>  
 3   
 4 using namespace std;  
 5   
 6 char TF[27];  
 7 char TM[27];  
 8   
 9 void TL( int p1, int p2, int q1, int q2, int root )  
10 {  
11     if ( p1 > p2 ) return;  
12     for ( root = q1 ; TM[root] != TF[p1] ; ++ root );  
13     TL( p1+1, p1+root-q1, q1, root-1, 0 );  
14     TL( p1+root-q1+1, p2, root+1, q2, 0 );  
15     cout << TM[root];  
16 }  
17   
18 int main()  
19 {  
20     while ( cin >> TF >> TM ) {  
21         int L = strlen(TF)-1;  
22         TL( 0, L, 0, L, 0 );  
23         cout << endl;  
24     }  
25     return 0;  
26 }

 

posted on 2017-06-27 10:39  徐义宝  阅读(123)  评论(0编辑  收藏  举报

导航