0
点赞
收藏
分享

微信扫一扫

树的遍历(树的基本知识)

工程与房产肖律师 2022-03-14 阅读 73

代码:

//后序中序输出层次遍历序列
#include<iostream>
using namespace std;
#include<vector>
int postorder[33];
int inorder[33];
vector<vector<int>>levels(33);
void init(int postbg,int postend,int inbg,int inend,int level)
{
    if(postbg>postend)
        return;
    int r=postorder[postend];
    int t=0;
    while(inorder[inbg+t]!=r)
        t++;
    levels[level].push_back(r);
    init(postbg,postbg+t-1,inbg,inbg+t-1,level+1);
    init(postbg+t,postend-1,inbg+t+1,inend,level+1);
    return;
}
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>postorder[i];
    for(int i=0;i<n;i++)
        cin>>inorder[i];
    init(0,n-1,0,n-1,0);
    cout<<levels[0][0];
    for(int i=1;i<33;i++)
        for(int l=0;l<levels[i].size();l++)
            cout<<" "<<levels[i][l];
    return 0;
}

题目:

举报

相关推荐

0 条评论