PAT a1127

PAT真题练习(甲级)1127 ZigZagging on a Tree (30 分) PAT真题练习(甲级)1127 ZigZagging on a Tree (30 分) Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder t... 阅读详情

目的:z字形输出

输入:

中序和后序遍历顺序

输出:

层序遍历,按照Z字型输出

算法:建树,再广度搜索把节点存下来。奇数层的从后往前输出,偶数层从前往后输出。

#include<stdio.h>
#include<queue>
#include<vector>

using namespace std;

struct node{
    int value;
    int layer;
    node* left,*right;
}* root;
vector<int> inorder,postorder;
vector<node*> ans;
int N;

void creat(node*& now,int num,int il,int ir,int pl,int pr)
{
    if(il>ir) return;
    now = new node;
    now->value = postorder[pr];
    now->layer = num;
    now->left = NULL;
    now->right=NULL;
    int k=il;
    while(inorder[k]!=postorder[pr]) k++;
    int numleft = k-il;
    creat(now->left,num+1,il,il+numleft-1,pl,pl+numleft-1);
    creat(now->right,num+1,k+1,ir,pl+numleft,pr-1);
}
void leveltravel(node* r)
{
    queue<node*> q;
    q.push(r);
    while(q.size()!=0)
    {
        node* top = q.front();
        ans.push_back(top);
        q.pop();
        if(top->left!=NULL) q.push(top->left);
        if(top->right!=NULL) q.push(top->right);
    }
}
int main()
{
    scanf("%d",&N);

    inorder.resize(N);
    postorder.resize(N);

    for(int i=0;i<N;i++)
    {
        scanf("%d",&inorder[i]);
    }
    for(int i=0;i<N;i++)
    {
        scanf("%d",&postorder[i]);
    }

    creat(root,1,0,N-1,0,N-1);
    leveltravel(root);
    for(int i=0;i<ans.size();)
    {
        node* now = ans[i];
        if(now->layer%2==0)
        {
            printf("%d",now->value);
            i++;
        }else
        {
            int k = i;
            while(k<ans.size()&&ans[k]->layer==now->layer) k++;
            for(int j=k-1;j>=i;j--)
            {
                printf("%d",ans[j]->value);
                if(j!=i)
                printf(" ");
            }
            i = k;
        }
        if(i!=ans.size())
        printf(" ");
        else
        printf("\n");
    }
    return 0;
}

反思:

存节点的时候想到用vector,没有想到用vector数组。那样最后输出数据会简单得多。

企业微信自建应用全流程部署指南:从HTTPS到API调试 本文提供了一份详尽的企业微信自建应用部署指南,涵盖从HTTPS域名配置、Nginx反向代理到企业微信后台应用创建与API调试的全流程。核心在于构建一个符合企业微信安全要求的“可信”服务环境,并利用JupyterLab等工具进行高效调试,帮助企业快速完成内部系统与企业微信的集成。 阅读详情

相关推荐

C++常见面试题总结

C++常见面试题总结

xu_fu_yong的专栏 8万+

PAT A 1127(双端队列实现)

今天刷到这一题,猛一下以为挺简单的,经过简单思考,发现可以用双端队列来实现。但是一写发现不是那么回事,可能是状态不佳,可能是真的笨。。。太绕人了!差点写吐了,人给我写傻了。经过我的手动模拟发现双端队列确实可以做,不甘心的我还是花了两个小时左右给干出来了。考试肯定不能这样干,于是我决定使用其它方法实现,但两个小时的努力不能白费,所以把代码记录下来。 #include <stdio.h> #include <deque> #include <algorithm> usin

suiyuewushengly的博客 179

TwinCAT报SSE invalid operation错误

错误类型 TwinCAT程序中报出以下错误: 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 **** 383 ms | 'Port_851' (851): Exception (Exception Code: 0xc0000090, SSE invalid operation) in PLC Application Untitled1 Instance, Task PlcTask (RBP: 0xffffb3016c80ecc0, RIP: 0xffffe708ee5b5f53, RSP:

akadiao的博客 4161

PAT A1127 ZigZagging on a Tree (30 分) 二叉树

题目大意:给出中序和后序序列, 还原二叉树,然后进行一种Zigzag的层序遍历,即从根节点(记为第0层)开始输出,第1层从左向右输出节点,第2层从右向左输出节点...依次循环。 首先是根据中序和后序序列还原二叉树,这个我还不太熟,debug了几次才成功,注意root = NULL的时候要 new 一个节点。然后就是进行普通的层序遍历,并且更新每个节点的层数信息layer域...

HackingGate的博客 211

MATLAB安装配置libsvm(附MinGW64配置)

首先声明版本,本人PC系统Windows10 64bit,matlab安装的2016b,libsvm安装的version3.2.21.首先需要下载libsvm包:从林教授的网站上下载: http://www.csie.ntu.edu.tw/~cjlin/libsvm/2.将libsvm3.2.2解压到matlab/toolbox目录下:解压后:D:\matlab2016b\toolbox\libs...

github_35807147的博客 4万+

R3LIVE 1.0 适配 Velodyne 16线雷达:3步配置解决150米漂移问题

本文详细解析了R3LIVE 1.0适配Velodyne 16线雷达时出现的150米漂移问题,并提供三步配置方案。通过调整雷达类型设置、运动补偿与时间对齐、视觉-激光联合优化等关键参数,有效解决了系统漂移问题,提升定位精度。适用于机器人定位与建图领域的开发者。

weixin_29054195的博客 268

PAT-A1127

前几天去刷了PAT,趁热把答案记录下来供大家参考 这题完全是英语阅读题,题目读懂就能写 题意:BST,给中序序列和后序序列,重建这颗树,并将树按"Z"字型输出 #include #include #include using namespace std; int n; int in[40], post[40]; struct node{ int data; int level;

qq_2918的博客 999

Fastgpt本地使用Docker Compose 快速部署

修改文件,并执行再执行d重起容器。具体配置,参考配置详解。可以查看日志,在启动容器后,第一次请求网页,会进行配置文件读取,可以看看有没有读取成功以及有无错误日志。进入 FastGPT 容器,可以通过ls data查看目录下是否成功挂载文件。可通过查看配置文件。可能不生效的原因挂载目录不正确配置文件不正确,日志中会提示invalid json,配置文件需要是标准的 JSON 文件。

洛阳泰山的博客 1632

PAT A1127

#include &lt;iostream&gt; #include &lt;stack&gt; using namespace std; struct node{ int lchild,rchild,data; }no[50]; int N,in[50],post[50],nodeindex=0; int createtree(int inL,int inR,int postL,int pos...

weixin_37565706的博客 435

14、改进的目标检测与图像去模糊算法研究

本文研究了改进的目标检测与图像去模糊算法。改进的YOLOv5s算法在目标检测中通过添加PSA模块和VoVGSCSP结构,在轻量化模型的同时提高了检测的准确性和速度,适用于电力操作安全穿戴设备检测等场景。XT-GAN结合Transformer和生成对抗网络,在图像去模糊任务中有效解决了传统方法的不足,具有更低的计算复杂度和良好的鲁棒性。两种算法为计算机视觉领域的相关任务提供了更高效、准确的解决方案。

c7d8e的博客 214

Simulink开发项1000例实战专栏--实例38:基于Simulink的周波变换器(Cycloconverter)

需求分析周波变换器(Cycloconverter),也称为频率变换器或直接变频器,是一种将输入的固定频率交流电直接转换为不同频率的交流电的电力电子设备。它广泛应用于工业领域,如大功率电机驱动、风力发电、船舶推进系统等场合。与传统的间接变频器(如交-直-交变频器)相比,周波变换器具有更高的效率和更简单的结构,适用于需要低频输出的应用场景。

xiaoheshang_123的博客 334

PAT 1127

题意很简单:中后序建树,然后按Z字形输出 #include #include #include #include #include #include #include using namespace std; #define N 100005 struct Node { Node *lchild,*rchild; int c; }; int post[30], in[30]; Node *

Saiyyc的博客 383

Cadence PCB仿真 使用Allegro PCB SI为BRD文件创建通用型IBIS模型的方法图文教程

本文简单介绍使用Allegro PCB SI软件为BRD PCB设计文件中的元器件创建IBIS模型的方法。

fydar的博客 2168

PAT 1127A

PAT 1127题解

m0_62960816的博客 428

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

PAT-A 1127题解

PAT-A 1127题解 题目链接: https://pintia.cn/problem-sets/994805342720868352/problems/994805349394006016 题意分析 给定后序遍历和中序遍历的序列,要求非正常层序遍历的输出(先左后右边,再右边往左边,接着从左往右…………以此类推) 算法分析 这道题要解决两个问题: 怎么把这个二叉树构建出来 怎么交替的按照从右往左和从左往右层序遍历。 首先这个构建二叉树的算法和平时我们用到的差不了太多。代码如下: node* creat

weixin_44702215的博客 150

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

PAT_A1127#ZigZagging on a Tree

Source: PAT A1127ZigZagging on a Tree(30分) Description: Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of...

weixin_33912445的博客 200

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

PAT A1127 ZigZagging on a Tree (30分) (不建树)

PAT甲级:A1127 ZigZagging on a Tree (30分) Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder traver...

只想用最简短的代码刷题 241

PAT(A) 1127. ZigZagging on a Tree (30)

原题目: 原题链接:https://www.patest.cn/contests/pat-a-practise/1127 1127. ZigZagging on a Tree (30) Suppose that all the keys in a binary tree are distinct positive integers. A unique binary ...

萧易桥的博客 600

PAT——1127 ZigZagging on a Tree 甲级

1127 ZigZagging on a Tree题目题意代码解析AC代码参考 题目 https://pintia.cn/problem-sets/994805342720868352/problems/994805349394006016 题意 给出一棵树的中序和后序序列,要求按Z字型输出该数的层序序列 代码解析 详见参考文章,里面博主说的很详细了,在此解释一下df函数中的第一个参数index: 因为是地址传递,所以这个参数相当于先把postr赋值给root,然后在下一层递归时把root的左孩子和右孩子赋

ljhsq的博客 170

pat a 1127

这道题的输出让我写了好久,我一开始一直在想在层序遍历中找到某一行的第一个和最后一个,但是很不直观,我老是出错。后来换成把某一层单独存放,然后根据层数是奇数还是偶数来正着输出还是倒着输出,这样就好输出多了。 #include <iostream> #include <vector> #include <queue> using namespace std; st...

blxl313的博客 205

PAT A1124~A1127

一、PAT A1124Raffle for Weibo Followers 简单的模拟,细心一点就好啦。参考代码如下。 #include&lt;iostream&gt; #include&lt;string&gt; #include&lt;unordered_map&gt; using namespace std; unordered_map &lt;string, bool&gt; is...

Armstrong的博客 306

pat 1127. ZigZagging on a Tree

原题链接:https://www.patest.cn/contests/pat-a-practise/1127 1127. ZigZagging on a Tree (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standar

messenger的博客 423

PAT A1127 ZigZagging on a Tree (30 分) 二叉树遍历

题目大意:给出中序和后序序列, 还原二叉树,然后进行一种Zigzag的层序遍历,即从根节点(记为第0层)开始输出,第1层从左向右输出节点,第2层从右向左输出节点...依次循环。 根据中序和后序序列还原二叉树。然后就是进行普通的层序遍历,并且更新每个节点的层数信息layer域。同时因为节点数不超过30,开一个大小为40的vector[40]数组,用于记录每一层遍历的结果。最后,...

HackingGate的博客 293

PAT 1127 ZigZagging on a Tree (30分)

原文链接:我的个人博客 原题链接   PAT 1127 ZigZagging on a Tree (30分) 考点   树,树的遍历 思路   给定树的中序和后序序列,要求按Z字形层次输出,偶数层从右往左,奇数层从左往右遍历。 1. 根据中序和后序序列建树 2. tree用来存放树的结构。tree[index][0]和tree[index][1]分别表示,在后序序列post中下标为in...

我是没有梦想的小白 230

PAT a1127题解

#include #include #include using namespace std; const int maxn = 35; int in[maxn], post[maxn]; struct Node { int data; int depth; Node*l, *r; Node():l(NULL),r(NUL

Tang's学习笔记 440

PAT 甲级 1127  ZigZagging on a Tree

1127 ZigZagging on a Tree (30 point(s)) Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder trav...

漫浸天空的雨色的备忘录~ 886
上一篇: PAT a1125
下一篇: PAT a1126
CSlerner
博客等级 码龄9年 153粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值