PAT-Advanced 1110. Complete Binary Tree (25)

看完这篇爽文我终于学会了示波器(一) 示波器基础篇的介绍,希望对你有用,下次分享一下如何测试。 阅读详情

2016.3.12的浙大PAT甲级第三题。

题目链接

题目大意:

就是给出一颗二叉树,问这个是不是一颗完全二叉树,完全二叉树就是除最后一层外,每一层上的节点数均达到最大值,在最后一层上只缺右边的若干节点的树。

解题思路:

先找到树的根节点,然后用类似广搜的方法,确保前一层都放满后再去找下一层。具体做法是用一个队列存放某一层的节点,用cnt表示当前已经遍历过节点的数量,一旦cnt==n(树的节点总数),则表示是完全二叉树,否则在cnt==n之前一旦出现某个节点没孩子的情况,就不是完全二叉树了。

代码:

#include<cstdio>
#include<cstring>
#include<queue>
#include<iostream>
using namespace std;
struct node
{
	int left,right;//节点左孩子和右孩子的标号
}p[25];
int pre[25];//节点的父亲节点标号,用于确定根节点
char str1[5],str2[5];
int main()
{
	int n,i,root;
	scanf("%d",&n);
	memset(pre,-1,sizeof(pre));
	for(i=0;i<n;i++)
	{
		scanf("%s%s",str1,str2);
		if(str1[0]=='-')
			p[i].left=-1;
		else
		{
			sscanf(str1,"%d",&p[i].left);
			pre[p[i].left]=i;
		}
		if(str2[0]=='-')
			p[i].right=-1;
		else
		{
			sscanf(str2,"%d",&p[i].right);
			pre[p[i].right]=i;
		}
	}
	if(n==1)
	{
		puts("YES 0");
		return 0;
	}
	for(i=0;i<n;i++)
		if(pre[i]==-1)
		{
			root=i;
			break;
		}
	queue<int>q;
	int cnt=1,flag=0,tmp;//cnt是当前遍历过的节点个数
	q.push(root);
	while(!q.empty())
	{
		tmp=q.front();
		q.pop();
		if(p[tmp].left==-1)
		{
			flag=1;
			break;
		}
		q.push(p[tmp].left);
		cnt++;
		if(cnt==n)
			break;
		if(p[tmp].right==-1)
		{
			flag=1;
			break;
		}
		q.push(p[tmp].right);
		cnt++;
		if(cnt==n)
			break;
	}
	if(flag)
		printf("NO %d\n",root);
	else
		printf("YES %d\n",p[tmp].right==-1?p[tmp].left:p[tmp].right);//这个tmp保留了最后一个节点的父亲节点
	return 0;
}


FPGA原型验证(七):如何选择、搭建原型验证平台? 本篇概要::讨论了在项目初期选择目标FPGA平台的重要性,包括自制板卡与购买现成板卡之间的决策。主要是为那些希望建立基于FPGA的原型平台的工程师和设计师提供了深入的技术细节和决策指导,无论是选择自制还是购买现成的解决方案。 阅读详情

相关推荐

CentOS7下Ollama部署全攻略:从安装到自定义端口配置(附国内加速技巧)

本文详细介绍了在CentOS7系统上部署Ollama的完整流程,包括环境准备、模型下载优化、服务化部署及端口配置等关键步骤。特别针对国内网络环境提供了加速安装方案和镜像源配置技巧,帮助开发者快速搭建稳定的本地AI运行环境。

mmm90的博客 287

完全二叉树(Complete Binary Tree)和满二叉树(Full Binary Tree)的异同解释及其相关代码

完全二叉树是指除了最后一层外,其他层的节点都必须填满,并且最后一层的节点从左到右连续地排列。换句话说,除了最后一层外,每一层都是满的,最后一层上的节点都尽可能地靠左排列。完全二叉树不一定是满的,即最后一层可能不完全填满。满二叉树是指每一层的节点都是满的,即每个节点都有两个子节点(除了最后一层外)。满二叉树的节点数满足关系式: N = 2^h - 1,其中 N 是满二叉树的节点数,h 是满二叉树的高度。最后一层节点不是满的,但节点的排列是从左到右连续的。每一层的节点都是满的,每个节点都有两个子节点。

Kegi_的博客 4685

从零到一:手把手教你用海康VisionMaster完成第一个字符识别项目(附完整流程与避坑点)

本文详细介绍了如何使用海康VisionMaster完成首个字符识别项目,涵盖从环境搭建、图像预处理到系统集成的完整流程。特别分享了Blob分析配置、字符识别优化等实战技巧,帮助开发者避开常见陷阱,快速掌握VisionMaster的基本操作,提升工业自动化场景下的字符识别效率。

weixin_29313423的博客 664

完全二叉树你需要了解一下

完全二叉树(Complete Binary Tree)是一种特殊的二叉树,它的定义是:如果设二叉树的深度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。完全二叉树的性质包括:深度为k的完全二叉树,节点数在2k到2k+1−1之间。若根节点编号为1,则第i个节点的编号为i。对于任意一节点i,其左儿子的编号为2i,右儿子的编号为2i+1。如果i不是根节点,它的父节点编号为i/2(向下取整)。

技术人集结地 4642

ICC 实战解析——CTS 时钟树综合中的关键设置与优化策略

本文深入解析ICC工具中CTS时钟树综合的关键设置与优化策略,涵盖时钟树异常引脚设置、目标参数配置、非默认布线规则(NDR)等核心技术。通过实战案例展示如何有效控制时钟偏差、优化信号完整性,并平衡功耗与面积,为芯片物理设计提供专业指导。

weixin_30872577的博客 324

合金理论自动化工具包(Alloy-Theoretic Automated Toolkit:ATAT)的安装

合金理论自动化工具包(ATAT)是一个通用名称,指的是合金理论工具的集合,它包含了不同的代码工具,具体如下: 1)根据第一性原理(映射和映射)构造集群扩展的代码。簇展开是一种非常紧凑和有效的表达式,给出取代合金的能量作为其构型的函数(即原子的类型位于晶格的哪个位置)。 2)为了计算合金的热力学性质,从聚类展开开始,对晶格模型进行蒙特卡洛模拟(emc2和memc2)的代码。 3)执行晶格动力学计算的代码(fitfc, fitsvsl, svsl) 4)使用简单的物理或半经验模型计算电子和磁自由能贡献

qq_33400046的博客 1万+

1110 Complete Binary Tree (25分)

1110Complete Binary Tree(25分) Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each input file contains one test case. For each case, the first line gi...

chen_zan_yu_的博客 309

PLDM实战解析:传感器与效应器在智能监控系统中的应用

本文深入解析了PLDM(平台级数据模型)中传感器与效应器两大核心组件在智能监控系统中的应用。传感器负责感知硬件状态,分为数值型与状态型,提供精准的“体检报告”;效应器则负责执行控制指令,实现从监控到操作的闭环。文章通过实战案例,阐述了如何利用这些标准化组件构建高效、自动化的智能监控系统,并探讨了平台描述记录与事件机制等关键技术。

k6l7m8n9的博客 874

数据结构与算法(四)二叉树(Binary tree)

数据结构与算法(四)二叉树及其访问方法二叉树(Binary tree)基本性质完全二叉树(Complete Binary Tree)满二叉树 (Full Binary Tree)- 国内定义- 国外定义访问二叉树的方法 (Tree Traversals)前序遍历中序遍历后序遍历层次遍历LeetCode思想实践 昨天我们学习了堆。堆的数据结构其实就是完全二叉树。今天我们就专门学习一下什么是二叉树。 ...

花花的博客 1126

6D位姿估计系列(一)

本研究提出FoundationPose,一个统一的基础模型框架,支持基于CAD模型和无模型的6D物体姿态估计与跟踪。通过神经隐式表示实现高效新视图合成,结合大规模合成数据训练和对比学习策略,模型展现出强大的泛化能力。实验表明,该方法在LINEMOD、YCB-Video等多个基准数据集上显著优于现有专门化方法,处理速度达32Hz,且无需目标域微调。该工作为多场景物体姿态估计提供了通用解决方案。

qq625924821的博客 557

复现CVE-2014-085(Apache ZooKeeper 未授权访问漏洞)

默认安装配置完的zookeeper允许未授权访问,管理员未配置访问控制列表(ACL)。导致攻击者可以在默认开放的2181端口下通过执行envi命令获得大量敏感信息(系统名称、java环境)导致任意用户可以在网络不受限的情况下进行未授权访问读取数据。

记录并分享学习安全的知识点.. 2173

树——二叉树

二叉树是一种树状结构:每个节点最多有两个孩子,左孩子和右孩子重要的二叉树结构。

time_silence的博客 442

pyecharts在jupyter notebook中不能够渲染图表问题。

在使用jupyter notebook中使用pyecharts绘制可视化图表的时候,发现图表不能渲染到页面中,生成的html是没问题的,本文主要解决在jupyter notebook中不能渲染这个问题。

猿小白的博客 1162

【PAT】【Advanced Level】1110. Complete Binary Tree (25)

二叉树遍历、满二叉树

wakawaka 422

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...

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PAT (Advanced Level)1110 Complete Binary Tree (25分)

1110 Complete Binary Tree (25分) Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each input file contains one test case. For each case, the first line gives...

JasonRaySHD的博客 261

老版QQ原生表情gif动态

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

PAT (Advanced Level) Practise 1110 Complete Binary Tree (25)

1110. Complete Binary Tree (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Given a tree, you are supposed to tel

Occult 732

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

PAT Advanced 1110 【Complete Binary Tree】(25)

分析:可由完全二叉树满足的编号关系入手,首先没出现在孩子的位置的结点是根节点,然后bfs进行遍历,对所有节点按完全二叉树进行编号,如根节点编号为0,其对应左孩子和右孩子的编号对应为0*2+1、0*2+2,即1和2。如果0到n之间有数字没被编号,则这不是一颗完全二叉树。 #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;que...

gq__97的博客 195

PAT (Advanced Level) 1110. Complete Binary Tree (25)

判断一棵二叉树是否完全二叉树。 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<map> #include<queue> #include<stack> #include<algori...

weixin_33720956的博客 96

完全二叉树,满二叉树判断——PAT (Advanced Level) 1110 Complete Binary Tree (25 分)

题目概述: 给出一颗树的结构判断是否为完全二叉树 题目分析: 1.设根节点的treeindex为1,dfs遍历完树的最大treeindex(根据左右孩子的index关系)。然后判断maxtreeindex和n的关系,当且仅当两者相等的时候树中间才不会空,也就是所谓的完全二叉树,同时记录最大treeindex的curindex进行输出 2.满二叉树的判断只用在完全二叉树的基础上判断n是否为2的幂次和即可 完整代码: //完全二叉树是从上到下,从左到右的二叉树 //按孩子的规律dfs出最大的index,当且..

小楼一夜听春雨 341

PAT (Advanced Level) Practice A1110 Complete Binary Tree (25 分)(C++)(甲级)(判断是否为完全二叉树,sscanf)

原题链接 #include&lt;algorithm&gt; #include&lt;algorithm&gt; #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include &lt;ctime&gt; #include &lt;cmath&gt; #include &lt;vector&a

izhxxx的博客 188

PAT (Advanced Level) Practice 1110 Complete Binary Tree (25分) (完全二叉树的判断+分享致命婴幼儿错误)

1.题目 Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each input file contains one test case. For each case, the first line gives a positive integerN(≤...

且慢 243

PAT-ADVANCED1110——Complete Binary Tree

我的PAT-ADVANCED代码仓 https://github.com/617076674/PAT-ADVANCED 原题链接 https://pintia.cn/problem-sets/994805342720868352/problems/994805359372255232 题目描述 题目翻译 1110 完全二叉树 给定一棵树,你需要判断其是否是一棵完全二叉树。 输入...

清风阁 363

PAT Advanced 1110 Complete Binary Tree

1110 Complete Binary Tree Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each input file contains one test case. For each case, the first line gives a p...

ZQYnn's blog 199

PAT(Advanced)1110 Complete Binary Tree C++实现

PAT(Advanced)甲级1110 Complete Binary Tree C++实现 题目链接 1110 Complete Binary Tree 题目大意 从0到N-1个节点,给定每个节点的左右孩子,求给定二叉树是否为完全二叉树,若是则输出YES以及最右边的叶子节点的序号,否则输出NO以及根节点序号 算法思路 根据题意要求和输入数据,先找到二叉树根节点,即没有父亲节点的节点,根据完全二叉树性质和层序遍历定义,对完全二叉树进行层序遍历,将包括空指针的所有的节点入队,若遇到第一个空指针,则后面必然没有

qq_44486439的博客 382

PAT (Advanced Level) Practice 1110 Complete Binary Tree 判断完全二叉树

一、概述 25分题,正常来讲应该45分钟之内做完,我用了快90分钟,日日了狗不说,还没AC。 究其原因,在于我做这道题时,只想着从最直观的角度出发,用人脑的方式,也就是我平常的判断方式,判断一棵树是否是完全二叉树,这是不行的,按我的方法: 先建树; BFS得到各节点层数以及每层的节点,按顺序; BFS得到树高; 根据树高,先从第一层到倒数第二层,看节点数量是不是满的; 若不是满的,则...

四轩茶屋 254

PAT (Advanced Level) - 1110 Complete Binary Tree

CBT、树BFS

https://www.hyperplasma.top 193
上一篇: PAT-TOP 1010. Lehmer Code (35)
下一篇: java Android之Activity之间简单的信息传递
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值