练习:已知后序遍历和中序遍历,求层次遍历--C++实现

#include<iostream>
#include<vector>
using namespace std;
vector<char>post,in;
vector<char>level(100000,-1);
in N;
void ergodic(int root,int start,int end,int index){
    int i == start;
    if(start>end) return;
    while(i<end && in[i]!=post[root])
        i++;
    level[index]=post[root];
    ergodic(root-1-end+i,start,i-1,2*index+1);
    ergodic(root-1,i+1,end,2*index+2);
}

int main(){
    Cin>>N;
    post.resize(N);
    in.resize(N);
    for(int i=0;i<N;i++)
        Cin>>post[i];
    for(int i=0;i<N;i++)
        Cin>>in[i];
    ergodic(N-1,0,N-1,0);
    for(int i=0;cnt=0;i<level.size();i++){
        if(level[i]!=-1){
            printf("%c",level[i]);
            cnt++;
    }
    }
    return 0;
}

  

如果能python实现就好。

2021-1-2,笔记

原文地址:https://www.cnblogs.com/yuntimer/p/14223113.html