//2007-02-24 21:43:25 Accepted 1944 C++ 00:00.00 836K
#include <iostream>
using namespace std;
//树结点
struct TNode{
char data;
TNode* lchild;
TNode* rchild;
};
//返回root指针
TNode* Create(char *preord,char *inord,int n)
{
if(n==0)return NULL;
TNode* root=new TNode;
root->data=preord[0];
char *p=strchr(inord,preord[0]);
root->lchild=Create(preord+1,inord,p-inord);
root->rchild=Create(p-inord+preord+1,p+1,n-1-(p-inord));
return root;
}
void PostTravel(TNode *T)
{
if(T==NULL)return;
PostTravel(T->lchild);
PostTravel(T->rchild);
putchar(T->data);
}
void Destory(TNode *T)
{
if(T==NULL)return;
Destory(T->lchild);
Destory(T->rchild);
delete T;
}
int main()
{
char preord[30],inord[30];
while(scanf("%s %s",preord,inord)!=EOF){
TNode *T=Create(preord,inord,strlen(preord));
PostTravel(T);
putchar('/n');
Destory(T);
}
}
#include <iostream>
using namespace std;
//树结点
struct TNode{
char data;
TNode* lchild;
TNode* rchild;
};
//返回root指针
TNode* Create(char *preord,char *inord,int n)
{
if(n==0)return NULL;
TNode* root=new TNode;
root->data=preord[0];
char *p=strchr(inord,preord[0]);
root->lchild=Create(preord+1,inord,p-inord);
root->rchild=Create(p-inord+preord+1,p+1,n-1-(p-inord));
return root;
}
void PostTravel(TNode *T)
{
if(T==NULL)return;
PostTravel(T->lchild);
PostTravel(T->rchild);
putchar(T->data);
}
void Destory(TNode *T)
{
if(T==NULL)return;
Destory(T->lchild);
Destory(T->rchild);
delete T;
}
int main()
{
char preord[30],inord[30];
while(scanf("%s %s",preord,inord)!=EOF){
TNode *T=Create(preord,inord,strlen(preord));
PostTravel(T);
putchar('/n');
Destory(T);
}
}