首页 > 其他分享 >PAT甲级真题1020.树的遍历

PAT甲级真题1020.树的遍历

时间:2023-04-02 22:33:46浏览次数:42  
标签:遍历 PAT 1020 真题 int numLeft al ar 二叉树

翻译和代码思路:Acwing

一个二叉树,树中每个节点的权值互不相同。

现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。

输入格式

第一行包含整数 N,表示二叉树的节点数。

第二行包含 N个整数,表示二叉树的后序遍历。

第三行包含 N 个整数,表示二叉树的中序遍历。

输出格式

输出一行 N个整数,表示二叉树的层序遍历。

数据范围

1<=N<=30

输入样例:

7
2 3 1 5 7 6 4
1 2 3 4 5 6 7

输出样例:

4 1 6 3 5 7 2

#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
const int N=40;
int a[N],b[N],p[N];
int n;
vector<int> layer[N]; 
void Create(int al,int ar,int bl,int br,int d){
    if(al>ar) return;
    int val=a[ar];
    int k=p[val];   //当前递归中根节点的位置
    int numLeft=k-bl;  //左子树的结点树
    layer[d].push_back(val);
    Create(al,al+numLeft-1,bl,bl+numLeft,d+1);
    Create(al+numLeft,ar-1,k+1,br,d+1);
}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    for(int i=0;i<n;i++) cin>>b[i];
    for(int i=0;i<n;i++) p[b[i]]=i;  //记录中序遍历结点的位置
    Create(0,n-1,0,n-1,0);   //创建树
    for(int i=0;i<n;i++){
        for(auto x:layer[i]){
            cout<<x<<" ";
        }
    }
    return 0;
}

 

标签:遍历,PAT,1020,真题,int,numLeft,al,ar,二叉树
From: https://www.cnblogs.com/yulianyi/p/17281471.html

相关文章

  • PAT Basic 1064. 朋友数
    PATBasic1064.朋友数1.题目描述:如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如123和51就是朋友数,因为1+2+3=5+1=6,而6就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证号。2.输入......
  • PAT Basic 1063. 计算谱半径
    PATBasic1063.计算谱半径1.题目描述:在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的\(n\)个复数空间的特征值\({a_1+b_1i,⋯,a_n+b_ni}\),它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。现在给定一些复数空间的特征值,请你计算......
  • path()方法函数定义
    path()方法函数定义path函数在Django中的的定义如下所示:path(route,view,kwargs,name)它可以接收4个参数,其中前两个是必填参数后两个为可选参数。参数解析如下:1.routeroute是一个匹配URL的准则(类似正则表达式)。当Django响应一个请求时,它会从urlpatterns的第......
  • xpath语法的使用(以selenium为例)
    """xpath定位1.路径选择/表示根节点/html表示选择根节点下的html节点/html/body/div表示选择根节点下的html节点下面的body节点下面的div节点//div/p选择所有div下的直接子节点p元素//div//p选择所有div下的所有p元素//div/2.属性选择[@属性名="属性值"......
  • PAT Basic 1062. 最简分数
    PATBasic1062.最简分数1.题目描述:一个分数一般写成两个整数相除的形式:\(N/M\),其中\(M\)不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数\(N_1/M_1\)和\(N_2/M_2\),要求你按从小到大的顺序列出它们之间分母为\(K\)的最简分数。2.......
  • PAT Basic 1061. 判断题
    PATBasic1061.判断题1.题目描述:判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。2.输入格式:输入在第一行给出两个不超过100的正整数N和M,分别是学生人数和判断题数量。第二行给出M个不超过5的正整数,是每道题的满分值。第三......
  • selenium使用css selector和xpath的比较
    selenium提供的定位方式(常用)推荐的定位方式的优先级   优先级最高:ID   优先级其次:name   优先级再次:CSSselector   优先级再次:Xpath针对cssselector和xpath的优先级做一个简单的说明在项目中我们可能用的最多的是css或者xpath,那么针对这两种,我们优先选择css,原......
  • 2022年第十三届蓝桥杯大赛软件类决赛C/C++大学B组真题
    2022年第十三届蓝桥杯大赛软件类决赛C/C++大学B组真题卡牌constintN=2e5+10;piia[N];intsum;intb[N];intn,m;voidsolve(){ intmx=1e18,ans=0; cin>>n>>m; for(inti=1;i<=n;i++)cin>>a[i].first,a[i].second=i; for(inti=1;i<=n;i++)cin>>b[i......
  • PAT Basic 1060. 爱丁顿数
    PATBasic1060.爱丁顿数1.题目描述:英国天文学家爱丁顿很喜欢骑车。据说他为了炫耀自己的骑车功力,还定义了一个“爱丁顿数”\(E\),即满足有\(E\)天骑车超过\(E\)英里的最大整数\(E\)。据说爱丁顿自己的\(E\)等于87。现给定某人\(N\)天的骑车距离,请你算出对应的爱丁......
  • Spatial Join,空间连接
    WelearnedhowtousetheSpatialJointooltoattachinformationfromoneattributetabletoanotherbasedonthespatialrelationshipofthefeaturesinvolved.Itisaveryusefultoolthatcanhelppeopleworkefficiently.However,Iamnotveryfam......