#include<stdio.h> #include<string.h> #include<malloc.h> typedef struct tree { struct tree *left; struct tree *right; char data; }t; int find(char a,char *b) { int i=0; while(b[i]!=a) { i=i+1; } return i; } void write(t *tree) { if(tree->left!=NULL) { write(tree->left); } if(tree->right!=NULL) { write(tree->right); } printf("%c",tree->data); } void spy(char *str,int i,int j,char *a) { int k;
for(k=0;k<j-i+1;k++)
{
a[k]=str[k+i];
}
a[k]='\0';
} t* get(char *str1,char *str2) {
t *tr;
char *str11,*str22;
str11=(char*)malloc(100*sizeof(char));
str22=(char*)malloc(100*sizeof(char));
int d;
tr=(t*)malloc(sizeof(t));
tr->data=str1[0];
tr->left=NULL;
tr->right=NULL;
d=find(str1[0],str2);
if(d>=0)
{
if(d>0)
{
spy(str1,1,d,str11);
spy(str2,0,d-1,str22);
tr->left=get(str11,str22);
}
if(d<strlen(str1)-1)
{
spy(str1,d+1,strlen(str1)-1,str11);
spy(str2,d+1,strlen(str2)-1,str22);
tr->right=get(str11,str22);
}
}
return tr;
} int main() { int i,n; char a[100],b[100]; t *tr; scanf("%s",&a); scanf("%s",&b); tr=get(a,b); write(tr); }