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;
}

posted @ 2009-05-18 17:25  主函数  阅读(516)  评论(1编辑  收藏  举报