代码求调
查看原帖
代码求调
763566
Accepted_please楼主2023/8/24 10:16

###感谢大佬

#include<iostream>

using namespace std;

string first;//前序
string mid,last;//中序,后序
int len,n;
void dfs(int t,string a,string b)
{
    string l_tree,r_tree,back_1tree,back_2tree;
    int temp;
    int l=0,r=0,x=0;
    int len=a.length();
    if(t==n)
    {
        for(int i=0;i<len;i++)
        {
            cout<<first[i];
        }
        return;
    }

    first[t]=last[len-1];

    for(int i=0;i<len;i++)
    {
        if(mid[i]==first[t])
        {
            temp=i;
        }
    }
    for(int i=0;i<temp;i++)
    {
        l_tree[i]=mid[i];
        x++;
    }
    for(int i=temp+1,j=0;i<len;i++,j++)
    {
        r_tree[j]=mid[i];
    }
    //
    for(int i=0;i<x;i++)
    {
        back_1tree[i]=last[i];
    }
    for(int i=x;i<len-1;i++)
    {
        back_2tree[i]=last[i];
    }
    dfs(t+1,l_tree,back_1tree);//顺序根左右
    dfs(t+1,r_tree,back_2tree);//然后右边的子子树
}

int main()
{
    cin>>mid>>last;
    n=mid.length();
    dfs(0,mid,last);
    
    return 0;
}
2023/8/24 10:16
加载中...