pat a1043 二叉排序树 镜像树

激光雷达与相机时间戳同步:原理、触发方案与工程实现 目录一、引言:时间不同步,多传感器融合必出问题二、核心原理:相机成像机制与触发模式(同步的基础)2.1 相机成像的两个核心阶段:曝光与读出(1)非交叠曝光(2)交叠曝光2.2 相机触发模式:内触发 vs 外触发(1)内触发(2)外触发2.3 关键信号:Strobe信号与预输出(同步的核心技巧)三、三种主流时间戳同步方案(工程落地首选)3.1 方案一:统一硬触发(精度最高,高端场景首选)核心原理核心配置要点优缺点适用场景3.2 方案二:软触发+硬触发(Strobe预输出,车载量产首选)核心原理核心配置要点优缺 阅读详情

题目:

https://pintia.cn/problem-sets/994805342720868352/problems/994805440976633856

https://www.nowcoder.com/pat/5/submission-detail/64125906

一、题目描述

PAT  a1043 Is It a Binary Search Tree (25分)

A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:

  • The left subtree of a node contains only nodes with keys less than the node's key.
  • The right subtree of a node contains only nodes with keys greater than or equal to the node's key.
  • Both the left and right subtrees must also be binary search trees.

If we swap the left and right subtrees of every node, then the resulting tree is called the Mirror Image of a BST.

Now given a sequence of integer keys, you are supposed to tell if it is the preorder traversal sequence of a BST or the mirror image of a BST.

Input Specification:

Each input file contains one test case. For each case, the first line contains a positive integer N (≤1000). Then N integer keys are given in the next line. All the numbers in a line are separated by a space.

Output Specification:

For each test case, first print in a line YES if the sequence is the preorder traversal sequence of a BST or the mirror image of a BST, or NO if not. Then if the answer is YES, print in the next line the postorder traversal sequence of that tree. All the numbers in a line must be separated by a space, and there must be no extra space at the end of the line.

Sample Input 1:

7
8 6 5 7 10 8 11

Sample Output 1:

YES
5 7 6 8 11 10 8

Sample Input 2:

7
8 10 11 8 6 7 5

Sample Output 2:

YES
11 8 10 7 5 6 8

Sample Input 3:

7
8 6 8 5 10 9 11

Sample Output 3:

NO

给出N个正整数来作为一棵二又排序树的结点插入顺序,问:这串序列是否是该二叉排序树的先序序列或是该二叉排序树的镜像树的先序序列。

所谓镜像树是指交换二叉树的所有结点的左右子树而形成的树(也即左子树所有结点数据域大于或等于根结点,而根结点数据域小于右子树所有结点的数据域)。

如果是镜像树,则输出YES,并输出对应的树的后序序列;否则,输出NO。 

二、算法实现 

#include<cstdio> 
#include<vector>
using namespace std;

struct Node
{
	int data;
	Node* left,*right;
};

void insert(Node* &root,int data)
{
	if(root==NULL)
	{
		root=new Node;
		root->data=data;
		root->left=root->right=NULL;
		return;
	}
	if(data<root->data) insert(root->left,data);
	else insert(root->right,data);	
}

void preOrder(Node* root,vector<int> &vi)
{
	if(root==NULL) return;
	vi.push_back(root->data);
	preOrder(root->left,vi);
	preOrder(root->right,vi);
}

void preOrderMirror(Node* root,vector<int> &vi)
{
	if(root==NULL) return;
	vi.push_back(root->data);
	preOrderMirror(root->right,vi);	
	preOrderMirror(root->left,vi);
}

void postOrder(Node* root,vector<int> &vi)
{
	if(root==NULL) return;
	postOrder(root->left,vi);
	postOrder(root->right,vi);
	vi.push_back(root->data);
}

void postOrderMirror(Node* root,vector<int> &vi)
{
	if(root==NULL) return;
	postOrderMirror(root->right,vi);
	postOrderMirror(root->left,vi);
	vi.push_back(root->data);
}


int main()
{
	int n,data;
	vector<int> origin,pre,preM,post,postM;
	Node* root=NULL;  //定义头结点 
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&data);
		origin.push_back(data);
		insert(root,data);
	}
	
	preOrder(root,pre);
	preOrderMirror(root,preM);
	postOrder(root,post);
	postOrderMirror(root,postM);
	if(origin==pre)
	{
		printf("YES\n");
		for(int i=0;i<post.size();i++)
		{
			printf("%d",post[i]);
			if(i<post.size()-1) printf(" ");
		}
	}
	else if(origin==preM)
	{
		printf("YES\n");
		for(int i=0;i<postM.size();i++)
		{
			printf("%d",postM[i]);
			if(i<postM.size()-1) printf(" ");
		}
	}
	else 
	{
		printf("NO\n");
	}
	return 0;
}

 

SST专题(2-4)MMC-SST 输入级的环流分析 本文分析了模块化多电平换流器(iMMC-SST)的输入级等效电路、子模块电容电压波动特性及环流抑制机理。研究表明:1)子模块电容电压波动包含基频和二倍频分量,与传统换流器相比波动幅值更大;2)环流主要由子模块电容电压波动在桥臂电感上激发的偶次谐波电流构成,呈频率越高幅值越小的特性;3)可通过增大桥臂电感或采用调制策略叠加抑制电压分量来有效控制环流。研究结果为MMC系统设计提供了理论依据。 阅读详情

相关推荐

STM32H743IIT6上LVGL移植实战:从零到触摸屏驱动的完整配置流程

本文详细记录了在STM32H743IIT6高性能MCU上,从零开始移植LVGL图形库到7寸RGB触摸屏的完整实战流程。内容涵盖工程搭建、显示与触摸驱动配置、LVGL核心优化及常见问题排查,重点讲解了如何利用STM32H743的硬件特性(如DMA2D、LTDC)提升GUI性能,为嵌入式GUI开发提供了一份详实的配置指南。

spark7igniter的博客 561

题目——PAT A1043(二叉排序树)

题目链接 给出N个正整数来作为一棵二叉排序树的结点插入顺序,问:这串序列是否是该二叉排序树的先序序列或是该二叉排序树的镜像树的先序序列。所谓镜像树是指交换二叉排序树的所有结点的左右子树而形成的树(也即左子树所有结点数据域大于或等于根结点,而根结点数据域小于右子树所有结点的数据域)。如果是,则输出YES,并输出对应的树的后序序列;否则,输出NO。 解题大致思路: 二叉排序树的中序序列M1是N个正整数的非递减序列 二叉排序树的镜像树的中序序列M2是N个正整数的非递增序列 ...

weixin_43878652的博客 440

ADRC自抗扰控制:工程抗扰“黑科技”,附C代码实战!

自抗扰控制(ADRC)是一种革新性的强鲁棒控制策略,通过主动估计和补偿系统扰动,无需精确数学模型即可实现优异控制性能。本文详细解析ADRC三大核心组件:跟踪微分器(TD)实现指令柔化,扩张状态观测器(ESO)实时估计总扰动,非线性状态反馈(NLSEF)完成动态补偿。针对二阶系统,文章提供完整的参数设计方法和C语言实现框架,包括关键函数fhan和fal的代码实现。ADRC将复杂对象"线性化"为积分器串联系统,显著提升抗扰能力,特别适用于电机控制、飞行器姿态等存在模型不确定性和强干扰的场景。

技术工作者 1737

PAT甲级 1043 Is It a Binary Search Tree (25分)

1043 Is It a Binary Search Tree (25分) 题目链接:PAT A 1043 题目大意:输入第一行给出一个数n,然后给出n个数,要求按照输入的顺序构造一颗二叉搜索树,并判断输入的序列是不是这棵二叉搜索树的前序遍历或者这棵二叉搜索树镜像的前序遍历(二叉搜索树的镜像是将每个根节点的左右子树交换)。如果是,要求输出YES以及二叉搜索树或其镜像的后续遍历,如果不是,输出N...

weixin_43684054的博客 197

算法竞赛入门到进阶 --- 完整学习路线(含知识点讲解)

前言: 咳咳,接触算法竞赛也有一年了,却从来都没有进行过一次系统的学习,稀里糊涂的就这么搞了半年,如今,我决定认认真真的进行一次系统的复盘。嗯嗯,先把大体路线列出来,然后往后每天搞几篇,可能大三能完成,可能永远也不能写完这些,我只能慢慢来,一起共勉吧。冲了!(主要是太菜了,不系统学习下,怕是铜牌都拿不到呀!) 算法竞赛入门到进阶一、sort函数自定义排序二、c++容器的使用1.vector动态数组2.stack栈3.queue队列4.list链表5.set集合6.map映射三、二进制子集生成四、bfs.

qq_43514659的博客 2万+

Unity海洋渲染实战:Ceto Ocean System核心原理与高级应用指南

实时水面渲染是计算机图形学中的重要课题,涉及波浪模拟、光照交互和着色器编程等核心技术。其原理通常基于物理模型,如使用Gerstner波模拟规则海浪,或通过快速傅里叶变换(FFT)处理频谱数据生成随机海面。这些技术的价值在于能以可控的性能开销,在游戏中实现具有体积感、反射和折射效果的真实水体。在开放世界、海战模拟等应用场景中,专业的海洋系统如Ceto Ocean System,通过模块化架构整合了波浪生成、动态网格和渲染管线,为开发者提供了完整的解决方案。本文深入探讨了其双引擎波浪系统和多层渲染结构,并分享了

weixin_29002595的博客 282

浙江大学PAT甲级A1043(C++)题解

#include <iostream> #include <vector> using namespace std; struct node{ int data; node* lchild; node* rchild; }; void insert(node* &root,int data){ if(root==NULL){ ...

xiaohuo0930的博客 392

保姆级教程:在STM32CubeIDE上快速部署micro_ros到STM32F407(附常见问题解决)

本文提供了一份详细的保姆级教程,指导开发者如何在STM32CubeIDE上快速部署micro_ros到STM32F407微控制器。内容涵盖从Windows与Ubuntu双环境搭建、micro-ROS静态库编译、STM32CubeIDE工程深度集成,到串口通信联调与常见问题解决的完整流程,旨在帮助读者构建稳定可靠的ROS2与嵌入式设备通信系统。

o4p5q6r7s的博客 324

算法_回溯_全排列II(含去重方法总结)

文章目录全排列II1.解法2.总结 全排列II leetcode链接 1.解法 这道题和简单全排列的区别在于,集合中有重复元素,所以我们只要使用一种方法去重即可。 如果不明白简单全排列要怎么做的,可以看我以前的博客(全排列) 先画出树图: 首先我们先讲为什么需要去重,换句话说,为什么会产生重复解? 举个例子,比如[1,1,2]。 对于第一个1而言,如果先把他选出来,那么对于剩余集合[1,2]而言,就可以产生[1,1,2]、[1,2,1]两个解。 然后我们来看第二个1,如果先把他选出来,那么剩余集合也

一个努力生活的人的博客 927

5、Visual Studio Code:强大的编码与文件管理功能

本文详细介绍了 Visual Studio Code 的强大编码与文件管理功能,涵盖代码导航、引用查找、符号重命名、实时代码分析、IntelliCode 提示、文件和文件夹操作等内容。通过功能对比、流程图和实际开发案例,展示了 VS Code 如何提升开发效率和代码质量,适用于各类编程语言和项目开发场景。

water的专栏 134

MinerU 本地部署完整指南:从零构建你的私有文档智能处理系统

摘要: MinerU是一款开源本地化文档解析工具,可将PDF、Word等文件智能转换为结构化Markdown,保留表格、公式、图片等元素。其核心优势包括: 隐私安全:完全离线处理,避免云端数据泄露风险; 高精度解析:基于深度学习还原文档逻辑结构,支持多格式输入; 易集成:提供RESTful API,适合金融、医疗等敏感场景。部署需Python 3.9+环境,支持CPU/GPU运行,推荐配置16GB内存及NVIDIA显卡。通过命令行或Docker即可快速启动,适用于知识库构建、RAG系统预处理等。

reset2021的博客 754

PAT A1043

镜像树的创建即在插入insert函数中将原本向左右子树递归的条件交换一下即可 void insert1(node* &root,int v) { if(root==NULL)//没找到,说明要插入 { root=new_node(v); return; } if(v>=root->data) insert1(root->rchild,v); else insert1(root->lchild,v); } void insert2(node* &r

t42t24t2t的博客 220

IEC104协议学习专栏内容规划

IEC104协议的编程学习

sixtome 1110

PAT A1043 二叉排序树的插入跟镜像树的前后序

题目:给出n个正整数来作为一棵二叉排序树的结点插入顺序,问:这串序列是否是该二叉排序树的先序序列或是该二叉树的镜像的先序序列。所谓镜像树就是指交换二叉树的所有结点的左右子树而形成的树(也即左子树所有结点数据域大于或等于根结点,而根结点数据域小于右子树所有结点的数据域)。如果是镜像树,则输出yes,并输出对应的树的后序序列;否则,输出no

Abigail路小雨的博客 177

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

1043. Is It a Binary Search Tree (25)

题目详情:https://www.patest.cn/contests/pat-a-practise/1043提交: 提交代码:#include <iostream> #include <malloc.h> #include <vector> using namespace std; #define N 1010 typedef struct BTree { int data; s

LiuY_ang的博客 398

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

PAT 1043

题目 PAT 1043 考察点 二叉搜索树的性质 思路 从样例1中可以知道,二叉搜索树的插入序列就是其先序遍历所得到的序列,因此可以通过题目给出的先序遍历,构造二叉搜索树 样例1的树结构(正常的BST)     8   6   10 5  7 8 11 例2的树结构(BST的镜像)  &nbsp...

Do Better 441

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

PAT--1043 Is It a Binary Search Tree(二叉排序树的建立与判定)

思路: 如何判断一个输入序列是否是一颗二叉排序树的前序序列或者是其镜像树的前序序列? 方法一:根据输入序列建立一颗二叉排序树和一颗镜像树,分别再进行前序遍历,若这两棵树中,有一个前序序列和输入序列相同,则输出yes。否则输出no。 参考博客: https://blog.youkuaiyun.com/xianyun2009/article/details/50191137 方法二:还有一个规律是镜像树的后序遍...

上帝是个娘们的博客 160

[PAT-A 1043]Is It a Binary Search Tree

考察二叉查找树 题目大意:给出N个正整数来作为一颗二叉排序树的节点插入顺序,问这串序列是否为给二叉排序树的先序序列或是该二叉排序树的镜像树的先序序列。 镜像树:交换二叉树的所有节点的所有子树而形成的树(左子树所有节点的数据与大于等于根节点,根节点的数据域大于右子树的数据域) 如果是 输出YES,如果不是 输出NO 思路: 1.通过给定的擦汗如序列,构建出二叉排序树,对镜像树的先序遍历只需要在原树...

RegulusF的博客 185

PAT A 1043 Is It a Binary Search Tree

摘要: 题目要求判断给定的整数序列是否为二叉搜索树(BST)或其镜像树的前序遍历序列。若是,则输出对应的后序遍历序列。程序首先构建BST,生成其前序和镜像前序序列与输入比较。若匹配BST前序,输出常规后序;若匹配镜像前序,输出镜像后序(右左根顺序)。否则输出NO。关键步骤包括插入建树、前序遍历验证及后序遍历输出。 关键词: 二叉搜索树、前序遍历、镜像树、后序遍历、序列验证

whdehcy的博客 1062

PAT A1043 Is It a Binary Search Tree

一、题目大意 PAT A1043 给出 n 个正整数作为二叉排序树的结点插入序列,判断这个序列是否为该二叉排序树的先序序列或是该二叉排序树的镜像树的先序序列。 二、解题思路 根据插入序列构建二叉排序树,然后分别生成先序序列和镜像先序序列,进行判断即可。 三、参考代码 #include&lt;iostream&gt; #include&lt;vector&gt; using namesp...

Armstrong的博客 156

PAT甲级-1043 Is It a Binary Search Tree

二叉排序树,镜像二叉排序树,由二叉排序树的先序求后序 C++

weixin_74092648的博客 612

PAT.A1043 Is It a Binary Search Tree

返回目录 题意 给出N个正整数来作为棵二叉排序树的结点插入顺序,问这串序列是否是该二叉排序树的先序序列或是该二叉排序树的镜像树的先序序列。所谓镜像树是指交换二叉树的所有结点的左右子树而形成的树(也即左子树所有结点数据域大于或等于根结点,而根结点数据域小于右子树所有结点的数据域)。如果是,则输出“YES”,并输出对应的树的后序序列;否则,输出“NO”。 样例(可复制) 7 8 6 5 7 10 8...

大模型天花板 194

【PAT A1043】 Is It a Binary Search Tree

A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the node’s key. The right subtree of a node contains only nodes with keys greater than

zxc0074869的博客 424

PAT甲级——A1043 Is It a Binary Search Tree

A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the node's key. The r...

weixin_30632089的博客 97

1043 Is It a Binary Search Tree

A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes with keys less than the node’s key. The right subtree of a node contains only nodes with keys greater than

DZY的博客 519

PAT 1043 Is It a Binary Search Tree

题目描述 分析: 给出N个正整数插入一棵二叉排序树,问这串序列是否是该二叉排序树的先序序列或者是该二叉排序树的镜像树的先序序列,输出后序序列。构建二叉排序树,镜像树的先序遍历只需要交换左右子树的访问顺序即可。 #include<cstdio> #include<vector> using namespace std; struct node{ int data; node* left,*right; }; void insert(node* &root,int da

qaqaqa666的博客 127
上一篇: 二叉查找树的基本操作
下一篇: 平衡二叉树的基本操作
Estrellas_
博客等级 码龄9年 273粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值