文章
17
粉丝
0
获赞
61
访问
2.9k
#include<bits/stdc++.h>
using namespace std;
//对string的熟练运用!!!!!!1401
//FDXEAG
//XDEFAG
void printPostorder(string preorder,string inorder){
if(preorder.empty()||inorder.empty()){
return;
}
char root = preorder[0];//当前根节点
int root_in=inorder.find(root);//获取中序遍历中root的位置,也能表示左子树的节点数量
string left_inorder=inorder.substr(0,root_in);//左子树的中序遍历
string left_preorder=preorder.substr(1,root_in);//左子树的前序遍历
printPostorder(left_preorder,left_inorder);
string right_inorder=inorder.substr(root_in+1);
string right_preorder=preorder.substr(root_in+1);
printPostorder(right_preorder,right_inorder);
cout<<root;
}
int main(){
string pre, in;
while(cin >> pre >> in){
printPostorder(pre,in);
&nbs...
登录后发布评论
暂无评论,来抢沙发