1064 Complete Binary Search Tree (30 分)

2023-11-17

题目

题目链接

题解

数据结构。


二叉排序树的中序遍历是单调递增的。

完全二叉树具有很好的顺序存储的性质。

利用中序遍历和递归,先构造左子树,再对根节点进行赋值,再构造右子树。


我是fw。

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int n;
int t[N], a[N], idx;

void build (int x) {
	if (x > n) return ;
	build (x << 1); // left
	t[x] = a[idx ++];
	build (x << 1 | 1); // right
}

int main()
{
	cin >> n;
	for (int i = 0;i < n;i ++) cin >> a[i];
	sort (a, a + n);
	
	build (1);

	for (int i = 1, flag = 0;i <= n;i ++) {
		if (flag) cout << ' ';
		flag = 1;
		cout << t[i];
	}
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1064 Complete Binary Search Tree (30 分) 的相关文章

随机推荐

  • 【BLE】蓝牙外围设备升级(OTA)

    目录 需求分析 升级协议交互 协议具体定义 协议交互进一步解读 一个校验单位 4K 的具体传输方式 方案实现 总结 需求分析 本案例中 智能手表作为中央设备对心率带通过BLE进行升级 这里手表首先要通过某种方式获得心率带的固件 然后通过BL
  • 好的技术设计文档应该包括什么

    好的技术设计文档应该包括 项目背景和目标 总体架构和系统模块划分 数据流程和数据存储 系统安全性和数据安全性 性能和可伸缩性 接口和协议规范 部署和运维方案 项目风险和解决方案 测试和验收计划 版本控制 迭代计划和文档管理策略
  • 【脚本工具】python修改xml文件中类别的名称和删除指定的类别

    功能 能够删除xml中不需要的类别标签 和替换制定的类别名称 使用方法 1 修改origin ann dir 原始xml文件夹路径 2 修改new ann dir 保存新xml的文件夹路径 3 需要修改和删除的类别名称 usr bin en
  • 按钮提交在url后添加字段_在输入字段上定向单击“清除”按钮(X)

    按钮提交在url后添加字段 jQuery makes it easy to get your project up and running Though it s fallen out of favor in recent years it
  • :nth-of-child和:nth-of-type

    nth of child 用法 nth of child n n可以为数字或者表达式 例如2n 1 指的是奇数项 介绍 第n个孩子 例如 div nth of child 1 等同于 div first of child div的第一个孩子
  • Hadoop的伪分布式运行模式

    Hadoop运行模式包括 本地模式 伪分布式模式 以及完全分布式模式 1 本地模式 安装简单 在一台机器上运行服务 几乎不用做任何配置 但仅限于调试用途 没有分布式文件系统 直接读写本地操作系统的文件系统 2 伪分布式模式 在单节点上同时启
  • typescript—第七天,命名空间

    没有命名空间时的问题 先写一下这样代码 用类的形式在index html中实现header content和Footer部分 类似我们常说的模板 在page ts文件里 写出下面的代码 class Header constructor co
  • 简述 RSA 加密算法实现过程

    银行密码系统安全吗 质数 素数 到底有啥用 李永乐老师11分钟讲RSA加密算法 2018最新 哔哩哔哩 bilibili 质数 和 欧拉函数 公钥 范围 且
  • Python 爬虫学习笔记(十(4))scrapy链接提取器CrawlSpider

    CrawlSpider也可以这样用 对每一个提取出的链接都调用某些操作 创建项目 scrapy startproject 项目的名字 跳转到scrapy文件夹的目录下 创建爬虫文件 语句和之前不同 scrapy genspider t cr
  • Java读取resource目录下图片插入excel导出

    1 将图片放在resoure目录下 2 读取图片并插入excel private void monthContractRow1 Sheet sheet CellStyle style1 String language Workbook wo
  • ElementUI常用组件之布局组件

    安装elementui npm i element ui S 配置ElementUI 1 main js中 引入elementUI 共分三步走 a import element ui b import css文件 c use Element
  • jQuery中$ $()与$(document) this与$(this)三个的区别

    是jquery专用的特殊符号 bai可以说所有dujquery函数的调用都是从 开始的 在jquery里面表示一zhi个选择器 括号dao里面填写一定的表达式就可以选中你想要的元素 jquery的选择器除了能很好地遵循css的表达式外 还额
  • Ubuntu 无法进行SSH连接,开启22端口

    我们在VM中安装好Ubuntu 虚拟机后 经常需要使用Xshell等工具进行远程连接 但是会出现无法连接的问题 原因是Ubuntu中默认关闭了SSH 服务 1 查看Ubuntu虚拟机IP地址 命令 ifconfig 2 利用XShell等工
  • 点击按钮改变颜色 模型动画暂停继续功能

    using System Collections using System Collections Generic using UnityEngine using UnityEngine UI using DG Tweening publi
  • C语言关键字必备练习题

    1 作业标题 642 关于C语言关键字说法正确的是 作业内容 A 关键字可以自己创建 B 关键字不能自己创建 C 关键字可以做变量名 D typedef不是关键字 答案解析 C语言关键字 C语言定义的 具有特定含义 专门用于特殊用途的C语言
  • 【c++】内存四区(代码区、全局区、栈区、堆区)

    文章目录 内存分区模型 代码区 全局区 栈区 堆区 内存分区模型 c 程序在执行时 将内存大方向划分为4个区域 代码区 存放函数体的二进制代码 有操作系统进行管理 全局区 存放全局变量和静态变量以及常量 栈区 由编译器自动分配释放 存放函数
  • C++ 产生随机数

    推荐一个博客 以下转载该博客部分内容 主要代码 include
  • JSP、JSTL标签

  • 02-JavaWeb之Servlet及相关知识点

    一 Servlet 简介 Java Servlet 是运行在 Web 服务器 tomcat 或应用服务器上的程序 它可以接收来自 Web 浏览器或其他 HTTP 客户端的请求 并进行结果的响应 使用 Servlet 可以收集来自网页表单的用
  • 1064 Complete Binary Search Tree (30 分)

    题目 题目链接 题解 数据结构 二叉排序树的中序遍历是单调递增的 完全二叉树具有很好的顺序存储的性质 利用中序遍历和递归 先构造左子树 再对根节点进行赋值 再构造右子树 我是fw 代码 include