当前位置:网站首页>是否完全二叉搜索树 (30 分)
是否完全二叉搜索树 (30 分)
2022-04-23 08:35:00 【怀化第二深情】
将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。
输入格式:
输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。
输出格式:
将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输出结果树的层序遍历结果,数字间以1个空格分隔,行的首尾不得有多余空格。第二行输出YES,如果该树是完全二叉树;否则输出NO。
输入样例1:
9
38 45 42 24 58 30 67 12 51
输出样例1:
38 45 24 58 42 30 12 67 51
YES
输入样例2:
8
38 24 12 45 58 67 42 51
输出样例2:
38 45 24 58 42 12 67 51
NO
#include<bits/stdc++.h>
using namespace std;
vector<int> level(100010, -1);
int n, t, flag, st, cnt;
void build(int val, int root){
if(val > level[root]){
if(level[2 * root + 1] != -1) build(val, 2 * root + 1);
else level[2 * root + 1] = val;
}
else if(val < level[root]){
if(level[2 * root + 2] != -1) build(val, 2 * root + 2);
else level[2 * root + 2] = val;
}
}
int main(){
cin >> n >> t, level[0] = t;
for(int i = 1;i < n;i++) cin >> t, build(t, 0);
for(int i = 0;i < 100010;i++){
if(level[i] != -1){
if(flag++) cout << " ";
cout << level[i];
cnt++;
}else{
if(cnt < n) st = 1;
}
}
if(st) cout << endl << "NO";
else cout << endl << "YES";
}
版权声明
本文为[怀化第二深情]所创,转载请带上原文链接,感谢
https://blog.csdn.net/dege2929512534/article/details/124339375
边栏推荐
- 洋桃电子STM32物联网入门30步笔记三、CubeMX图形化编程、设置开发板上的IO口
- idea打包 jar文件
- 对li类数组对象随机添加特性,并进行排序
- Notes on 30 steps of introduction to Internet of things of yangtao electronics STM32 III. Explanation of new cubeide project and setting
- QFileDialog select multiple files or folders
- RPC过程
- 请提前布局 Star Trek突破链游全新玩法,市场热度持续高涨
- How to generate assembly file
- 作文以记之 ~ 二叉树的后序遍历
- Ajax cache prevention method
猜你喜欢
随机推荐
四张图弄懂matplotlib的一些基本用法
洋桃电子STM32物联网入门30步笔记二、CubeIDE下载、安装、汉化、设置
Anonymous type (c Guide Basics)
Enctype attribute in form
Reference passing 1
什么是RPC
DOM learning - add + - button
IDEA导入commons-logging-1.2.jar包
Go语言自学系列 | golang结构体指针
Ear acupoint diagnosis and treatment essay 0421
swagger文档导出自定义v2/api-docs拦截
扣缴义务人
数据可视化:使用Excel制作雷达图
汇编语言与逆向工程 栈溢出漏洞逆向分析实验报告
Navicat remote connection MySQL
MySQL查询两张表属性值非重复的数据
Trust uses Tokio's notify and timeout to achieve the effect similar to the timeout condition variable
引用传递1
synchronized 锁的基本用法
作文以记之 ~ 二叉树的后序遍历









