文章
11
粉丝
216
获赞
4
访问
103.0k
by 老猫
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
void postorder(string preorder ,string midorder)
{
if(preorder.size()==0)
return;
char root=preorder[0];
int index=midorder.find(root);
string preorderleft=preorder.substr(1,index);//下一个前序的左子树
string preorderright=preorder.substr(index+1);//下一个前序的右子树
string midorderleft=midorder.substr(0,index);//下一个中序的左子树
string midorderright=midorder.substr(index+1);//下一个中序的右子树
postorder(preorderleft,midorderleft);
postorder(preorderright,midorderright);
cout<<root;
}
int main()
{
string preorder,midorder;
while(cin>>preorder>>midorder)
{
postorder(preorder ,midorder);
cout<<endl;
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发