#include <iostream> #include <math.h> #include<bits/stdc++.h> using namespace std; struct Treenode{ char val; Treenode*left; Treenode*right; Treenode(char c):val(c),left(NULL),right(NULL){}; }; Treenode* creattree(string preorder,string inorder){ if(preorder.size()==0)return NULL; else{ char c=preorder[0]; Treenode *root=new Treenode(c); int position=inorder.find(c); root->left=creattree(preorder.substr(1,position),inorder.substr(0,position)); root->right=creattree(preorder.substr(position+1),inorder.substr(position+1)); return root; } } void houxu(Treenode*root){ if(root==NULL)return; else{ houxu(root->left); houxu(root->right); cout<<root->val; } } int main(){ string preorder,inorder; while(cin>>preorder>>inorder){ Treenode*root=creattree(preorder,inorder); houxu(root); cout<<endl; } return 0; }