文章

17

粉丝

0

获赞

61

访问

2.9k

头像
二叉树遍历2 题解:分治与递归的思想,
P1401 华中科技大学/中国科学院机试题
发布于2026年3月4日 11:58
阅读数 127

#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...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发