点击查看代码
#include<bits/stdc++.h>
using namespace std;string in,post;void preorder(int inl,int inr,int postl,int postr)
{if(inl>inr||postl>postr) return;//找到根节点并输出char root=post[postr];cout<<root;//在中序排列中找到根节点int k=inl;while(in[k]!=root) k++;int leftsize=k-inl;//依次遍历左右树preorder(inl,k-1,postl,postl+leftsize-1);preorder(k+1,inr,postl+leftsize,postr-1);
}int main()
{cin>>in>>post;int n=in.size();preorder(0,n-1,0,n-1);return 0;
}