当前位置:网站首页>搜索树判断 (25 分)
搜索树判断 (25 分)
2022-04-23 08:35:00 【怀化第二深情】
对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。
现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。
输入格式:
输入的第一行包含一个正整数N(≤1000),第二行包含N个整数,为给出的整数键值序列,数字间以空格分隔。
输出格式:
输出的第一行首先给出判断结果,如果输入的序列是某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,则输出YES,否侧输出NO。如果判断结果是YES,下一行输出对应二叉树的后序遍历序列。数字间以空格分隔,但行尾不能有多余的空格。
输入样例1:
7
8 6 5 7 10 8 11
输出样例1:
YES
5 7 6 8 11 10 8
输入样例2:
7
8 6 8 5 10 9 11
输出样例2:
NO
#include<cstdio>
#include<vector>
#include<iostream>
#include<algorithm>
#include<map>
using namespace std;
int g[1010];
vector<int>kp;
int n;
bool f;
void build(int l,int r){
if(l>r)return;
int i=r,j=l+1;
int t=g[l];
if(f){
while(g[i]>=t&&i>l)i--;
while(g[j]<t&&j<=r)j++;
}
else {
while(g[i]<t&&i>l)i--;
while(g[j]>=t&&j<=r)j++;
}
if(j-i!=1)return;
build(l+1,i);
build(j,r);
kp.push_back(t);
}
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>g[i];
}
build(0,n-1);
if(kp.size()!=n){
f=!f;
build(0,n-1);
}
if(kp.size()==n){
cout<<"YES\n";
cout<<kp[0];
for(int i=1;i<n;i++){
cout<<" "<<kp[i];
}
}
else cout<<"NO\n";
return 0;
}
版权声明
本文为[怀化第二深情]所创,转载请带上原文链接,感谢
https://blog.csdn.net/dege2929512534/article/details/124339339
边栏推荐
猜你喜欢

让地球少些“碳”息 度能在路上

SYS_CONNECT_BY_PATH(column,'char') 结合 start with ... connect by prior

Input / output system

信息收集相关知识点及题解

汇编语言与逆向工程 栈溢出漏洞逆向分析实验报告

根据字节码获取类的绝对路径

Virtual online exhibition - Online VR exhibition hall realizes 24h immersive exhibition viewing

RPC procedure

作文以记之 ~ 二叉树的前序遍历

DJ音乐管理软件Pioneer DJ rekordbox
随机推荐
求简单类型的矩阵和
rembg 分割mask
tsdf +mvs
Failed to convert a NumPy array to a Tensor(Unsupported Object type int)
Kubernetes如何使用harbor拉去私有镜像
Add listening event to input element
经典题目刷一刷
洋桃电子STM32物联网入门30步笔记四、工程编译和下载
cadence的工艺角仿真、蒙特卡洛仿真、PSRR
An example of network communication based on TCP / IP protocol -- file transmission
Notes on 30 steps of introduction to the Internet of things of yangtao electronics STM32 III. cubemx graphical programming and setting the IO port on the development board
增强现实技术是什么?能用在哪些地方?
数据可视化:使用Excel制作雷达图
Redis master-slave server problem
DJ音乐管理软件Pioneer DJ rekordbox
PDF with watermark
Transformer XL: attention language modelsbbeyond a fixed length context paper summary
完全二叉搜索树 (30 分)
Overview of bus structure
洋桃电子STM32物联网入门30步笔记三、新建CubeIDE工程和设置讲解