前序遍历,中序遍历打印后序遍历的题目
#include<bits/stdc++.h>
using namespace std;
struct TreeNode
{
char elem;
TreeNode *leftchild;
TreeNode *rightchild;
};
void Post_order_traversal(char *Pre_order,char *In_order,int length)
{
if(length==0)
return;
TreeNode *node=new TreeNode;
node->elem=*Pre_order;
int rootIndex=0;
for(;rootIndex<length;rootIndex++)
{
if(In_order[rootIndex]==*Pre_order)
break;
}
//left
Post_order_traversal(Pre_order+1,In_order,rootIndex);
//right
Post_order_traversal(Pre_order+1+rootIndex,In_order+rootIndex+1,length-rootIndex-1);
cout<<node->elem;
}
int main()
{
char Inch[100];
char Prech[100];
cin>>Prech>>Inch;
int s=strlen(Inch);
Post_order_traversal(Prech,Inch,s);
}