#include <iostream>
using namespace std;
struct TreeNode
{
struct TreeNode *left;
struct TreeNode *right;
char elem;
};
void BinaryTreePostOrder(char *inorder,char *preorder,int length)
{
if (length==0)
{
return;
}
TreeNode *node=new TreeNode;
node->elem=*preorder;
int index=0;
for (;index<length;index++)
{
if (inorder[index]==*preorder)
{
break;
}
}
//左子树
BinaryTreePostOrder(inorder,preorder+1,index);
//右子树
BinaryTreePostOrder(inorder+index+1,preorder+index+1,length-index-1);
cout<<node->elem;
return;
}
int main()
{
char *pre="AB";
char *in="BA";
BinaryTreePostOrder(in,pre,2);
cout<<endl;
/*char* pr="GDAFEMHZ";
char* in="ADEFGHMZ";
BinaryTreePostOrder(in,pr,8);*/
return 0;
}