文章

20

粉丝

86

获赞

2

访问

4.5k

头像
二叉树的先序序列 题解:利用递归来求
799 VIP
P4355
发布于2024年3月11日 23:00
阅读数 251

#include<bits/stdc++.h>

using namespace std;
//由先中,求后
/*
    先序:A BEI DJ
    中序:EBI A DJ
    后序:EIB JD A
*/
void print1(string s1,string s2)
{
    //空节点
    if(s1 == "\0" || s2 == "\0") return ;//空

    //根结点
    int pos = s2.find(s1[0]);//找到 A 根结点 下标为3

    //左子树
    print1(s1.substr(1,pos),s2.substr(0,pos));

    //右子树
    print1(s1.substr(pos+1),s2.substr(pos+1));

    //打印
    //每一次S1拆分之后左子树与右子树的第一个点(s1【0】)都是根结点
    cout<<s1[0];
}

//中+后,求先
/*
    先序:A BEI DJ
    中序:EBI A DJ
    后序:EIB JD A
*/
void print2(string s1,string s2)
{
    if(s1 == "\0" || s2== "\0") return;//空

    //根结点
    int pos = s1.find(s2[s2.size() -1]);//找到 A 根结点 下标为3

    //找到即为根结点
    cout<<s1[...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发