#includeint cnt;
struct TreeNode {
char s[30];
struct TreeNode* left;
struct TreeNode* right;
};
typedef struct TreeNode* Tree;
Tree CreateTree(char* s1, char* s2) {
char* p, * q;//p保存左子树,q保存右子树
Tree root = (Tree)malloc(sizeof(struct TreeNode));
if (s2 == NULL) return NULL;
else {
root->s[0] = s1[cnt++];
root->s[1] = '\0';
p = strtok(s2, root->s);
q = strtok(NULL, root->s);
root->left = CreateTree(s1, p);
root->right = CreateTree(s1, q);
}
return root;
}
void PostOrderTraversal(Tree root)
{
if (root) {
PostOrderTraversal(root->left);
PostOrderTraversal(root->right);
putchar(root->s[0]);
}
}
int main()
{
Tree root;
char s1[30], s2[30];
while (scanf("%s%s", s1, s2) != EOF) {
root = CreateTree(s1, s2);
PostOrderTraversal(root);
printf("\n");
free(root);
cnt = 0;
}
return 0;
}