POJ 2255 Tree Recovery

/**************************************
Problem: POJ 2255 Tree Recovery
Time: 0MS
Memory: 204K 
Accepted Time: 2009-05-17 12:04:43
Tips: 
http://acm.pku.edu.cn/JudgeOnline/showmessage?message_id=107777
*************************************
*/

#include 
< stdio.h >
#include 
< string .h >
char  pre[ 30 ],ino[ 30 ];
void  fun( int  ps, int  pe, int   is , int  ie)
{
    
if(ps==pe)
    
{
        printf(
"%c",pre[ps]);
        
return;
    }

    
if(ps>pe||is>ie)return;
    
char root=pre[ps];
    
int i;
    
for(i=is;i<=ie;i++)
    
if(root==ino[i])break;
    
int len=i-is;
    fun(ps
+1,ps+len,is,i-1);
    fun(ps
+len+1,pe,i+1,ie);
    printf(
"%c",root);
}

int  main()
{
    
while(scanf("%s%s",pre,ino)!=EOF)
    
{
        
int len=strlen(pre);
        fun(
0,len-1,0,len-1);
        printf(
"\n");
    }

    
return 0;
}

你可能感兴趣的:(tree)