前菜---二叉树+堆的小练习


目录

前言🏜️

1. 二叉树性质总结⛱️

1.2 性质3⏰

2. 二叉树性质小练习🏕️

3. 答案+解析💡

4. 堆概念结构小练习🪔

5. 答案+解析🧿

6. 前/中/后/层序遍历小练习🔫

7. 答案+解析🧺

后语🌋


前言🏜️

之前的博客,我们一起学习了二叉树的概念和性质,堆的实现,如何实现二叉树的链式结构。今天,我们来复习总结一下二叉树的性质,并且做一些练习题来巩固一下知识点,为后面的oj题打下基础。

对之前内容不了解的活着忘记了的,可以点击下方链接🔗:

冬至·特辑:Note4---二叉树的链式结构-CSDN博客
Note3---初阶二叉树~~-CSDN博客


1. 二叉树性质总结⛱️

1. 若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有 2^ (n-1)个结点.

2. 若规定根节点的层数为1,则深度为h的二叉树的最大结点数是 2^h - 1.

3. 对任何一棵二叉树, 如果度为0其叶结点个数为 n0, 度为2的分支结点个数为 n2,则有 n0= n2+1

4. 若规定根节点的层数为1,具有n个结点的满二叉树的深度,h= log2(n+1).

5. 对于具有n个结点的完全二叉树,如果按照从上至下从左至右的数组顺序对所有节点从0开始编号,则对于序号为i的结点有:

1) 若i>0,i位置节点的双亲序号:(i-1)/2;i=0,i为根节点编号,无双亲节点

2) 若2i+1<n,左孩子序号:2i+1,2i+1>=n否则无左孩子

3) 若2i+2<n,右孩子序号:2i+2,2i+2>=n否则无右孩子

除了性质3我们没介绍过,其他的我们在之前的博客就介绍过了,需要的小伙伴点击下方链接🔗:

Note3---初阶二叉树~~-CSDN博客文章浏览阅读1.1k次,点赞58次,收藏49次。这篇博客,我们一起来了解并学习数据结构中的初阶的二叉树的概念和性质;以及堆和堆堆应用二叉树的知识点和内容比较多,友友们一定要有耐心看完(跳到自己需要的部分也是OK的)。https://blog.csdn.net/2301_79184587/article/details/135033457

1.2 性质3⏰


2. 二叉树性质小练习🏕️

1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( )

A 不存在这样的二叉树

B 200

C 198

D 199

2.下列数据结构中,不适合采用顺序存储结构的是( )

A 非完全二叉树

B 堆

C 队列

D 栈

3.在具有 2n 个结点的完全二叉树中,叶子结点个数为( )

A n

B n+1

C n-1

D n/2

4.一棵完全二叉树的节点数位为531个,那么这棵树的高度为( )

A 11

B 10

C 8

D 12

3. 答案+解析💡

1.解析:根据性质3可知,n0=n2+1;所以度为0的节点(叶子节点)个数为200

答案:B

2.解析:非完全二叉树用链式结构存储更好,不会造成空间浪费

答案:A

3.解析:由性质3可知,n0=n2+1;假设度为0的节点有n0个,度为1的节点有n1个,度为2的节点有n2个;所以,n2+1+n1+n2=2n;在完全二叉树中度为1的节点有0个or1个,这里2n肯定是偶数,那么倒推出来n1=1,这样才能保证等式成立;所以n0=n2+1=n

答案:A

4.解析:h的范围[log2N + 1 ,log2(N+1)];将N=531代入,可求得h范围

答案:B

4. 堆概念结构小练习🪔

1.下列关键字序列为堆的是:()

A 100,60,70,50,32,65

B 60,70,65,50,32,100

C 65,100,70,32,50,60

D 70,65,100,32,50,60

E 32,50,100,70,65,60

F 50,100,70,65,60,32

2.已知小根堆为8,15,10,21,34,16,12,删除关键字 8 之后需重建堆,在此过程中,关键字之间的比较次数是()。

A 1

B 2

C 3

D 4

3.小堆[0,3,2,5,7,4,6,8],在删除堆顶元素0之后,其结果是()

A[3,2,5,7,4,6,8]

B[2,3,5,7,4,6,8]

C[2,3,4,5,7,8,6]

D[2,3,4,5,6,7,8]

5. 答案+解析🧿

1.解析:根据大小堆2种形式:大堆:父>=子   小堆:父<=子

答案:A

2.解析:首尾交换,删除关键字8,向下调整3次(总共3层)

答案:C

3.解析:首尾交换,删除堆尾元素,向下调整

答案:C

6. 前/中/后/层序遍历小练习🔫

1.某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为( )

A ABDHECFG

B ABCDEFGH

C HDBEAFCG

D HDEBFGCA

2.二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG.则二叉树根结点为()

A E

B F

C G

D H

3.设一课二叉树的中序遍历序列:badce,后序遍历序列:bdeca,则二叉树前序遍历序列为____。

A adbce

B decab

C debac

D abcde

4.某二叉树的后序遍历序列与中序遍历序列相同,均为 ABCDEF ,则按层次输出(同一层从左到右)的序列为()

A FEDCBA 

B CBAFED

C DEFCBA

D ABCDEF

7. 答案+解析🧺

1.解析:

答案:A

2.解析:先序遍历,先遍历根节点--->E就是根节点

答案:A

3.解析:

答案:D

4.解析:

答案:A

后语🌋

到这里,我们的小练习就已经全部写完了。如果有别的思路或者疑问,欢迎在评论区提出,大家一起讨论讨论!!!

下篇博客,我们就要想二叉树的oj题进军了!!!


本次的分享到这里就结束了!!!

PS:小江目前只是个新手小白。欢迎大家在评论区讨论哦!有问题也可以讨论的!期待大家的互动!!!

公主/王子殿下,请给我点赞👍+收藏⭐️+关注➕(这对我真的很重要!!!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/315478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客 CCA的区间 dp + 补集转移

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 首先翻转一个区间意味着可以将任意两段不相交的区间组合&#xff0c;所以问题变成了选两端不相交的区间&#xff0c;使得合并后区间和最大。那么我们就处理出来区间&#xff0c;让后进行转…

ASP.NET Core IP 请求频率限制

在网站或API应用中&#xff0c;我们为了防止无聊人士或恶意攻击&#xff0c;通常希望屏蔽某一IP短时间的内高频率请求。在ASP.NET Core中&#xff0c;限制IP请求频率非常简单&#xff0c;我们来看看吧。轮子一个.NET Core 目前的生态发展十分迅猛&#xff0c;轮子也越来越多。只…

Exceptionless - .Net Core开源日志框架

作者&#xff1a;markjiang7m2原文地址&#xff1a;https://www.cnblogs.com/markjiang7m2/p/11020140.html官网地址&#xff1a;http://letyouknow.net今天要给大家介绍的Exceptionless是一个基于 .net core的开源日志框架&#xff0c;Exceptionless的意思是&#xff1a;没有异…

CF981E Addition on Segments 线段树分治 + bitset优化

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 我们考虑如果我们选择的区间都包含某个位置&#xff0c;那么这个位置一定是最大值。那么对于每个位置&#xff0c;我们枚举包含其的区间&#xff0c;让后每次加xxx都用bitsetbitsetbitset来…

开源基于Canal的开源增量数据订阅消费中间件

canal 是阿里巴巴开源的一款基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。我开发的这个CanalSync项目 https://github.com/yuzd/CanalSync >觉得不错帮忙给个star谢谢是基于canal-server之上的数据库同步&消费中间件&#…

不装 VS 自己编译安装 Windows Terminal

Windows Terminal 一直没有发布可以直接安装的二进制文件&#xff0c;想自行编译的时候&#xff0c;看到系统需求中包含体积巨大的 Visual Studio 和 Windows SDK&#xff0c;脑袋都大了。直接下载其他人编译好的安装包又不放心&#xff0c;那么就想个办法避免在本地环境编译吧…

带你了解C#每个版本新特性

上学时学习C#和.NET&#xff0c;当时网上的资源不像现在这样丰富&#xff0c;所以去电脑城买了张盗版的VS2005的光盘&#xff0c;安装时才发现是VS2003&#xff0c;当时有一种被坑的感觉&#xff0c;但也正是如此&#xff0c;让我有了一个完整的.NET的学习生涯。一直都认为学习…

从零开始制作 NuGet 源代码包(全面支持 .NET Core / .NET Framework / WPF 项目)

默认情况下&#xff0c;我们打包 NuGet 包时&#xff0c;目标项目安装我们的 NuGet 包会引用我们生成的库文件&#xff08;dll&#xff09;。除此之外&#xff0c;我们也可以专门做 NuGet 工具包&#xff0c;还可以做 NuGet 源代码包。然而做源代码包可能是其中最困难的一种了&…

.NET Core 3.0 Preview 6中对ASP.NET Core和Blazor的更新

我们都知道在6月12日的时候微软发布了.NET Core 3.0的第6个预览版。针对.NET Core 3.0的发布我们国内的微软MVP-汪宇杰还发布的官翻版的博文进行了详细的介绍。具体的可以点这里进行阅读译 | .NET Core 3.0 Preview 6 已发布。而我们这篇文章将会介绍本次更新中对ASP.NET Core和…

Dapper.Common基于Dapper的开源LINQ超轻量扩展

Dapper.CommonDapper.Common是基于Dapper的LINQ实现,支持.net core,遵循Linq语法规则、链式调用、配置简单、上手快,支持Mysql,Sqlserver(目前只实现了这两个数据库&#xff0c;实现其他数据库也很轻松)&#xff0c;支持单表&#xff0c;多表&#xff0c;自定义函数等功能。源码…

.NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖

我们有多种工具可以将程序集合并成为一个。比如 ILMerge、Mono.Merge。前者不可定制、运行缓慢、消耗资源&#xff08;不过好消息是现在开源了&#xff09;&#xff1b;后者已被弃用、不受支持且基于旧版本的 Mono.Cecil。而本文介绍用来替代它们的 ILRepack&#xff0c;使用 I…

4G的小程序与5G的Chromium OS?

提到桌面操作系统&#xff0c;Windows 与 macOS 自然是家喻户晓&#xff0c;稍微有点 IT 知识的人也会知道 Linux&#xff0c;而 Fuchsia 和鸿蒙&#xff08;方舟&#xff09;则还在积极开发中&#xff0c;除了这几大类比较热门的&#xff0c;当前还有一大潜力股 Chrome OS&…

P3605 [USACO17JAN]Promotion Counting P dfs序

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 这个题可以用各种姿势a掉&#xff0c;树启和线段树合并都可以&#xff0c;比较无脑。下面给一个解决这种问题比较巧妙的做法。 考虑暴力怎么写&#xff0c;我们先将每个点的权值离散化一下…

推荐VSCode多语言开发,支持一键JAVA

哈喽大家周一好&#xff01;好久不见鸭&#xff0c;最近在看一本书&#xff0c;很好&#xff0c;《人类简史》&#xff0c;适合夏日星空&#xff0c;仰观宇宙之大?这个专题是“做贡献”&#xff0c;也是作为软粉&#xff0c;打算一直推广微软自己的东西&#xff0c;上一次还是…

思维--找规律--Codeforces Round #645 (Div. 2) c题

C. Celex Update 题目大意&#xff1a;给出两点的坐标&#xff0c;找出不同的路径的总数&#xff08;路径数字总和不同&#xff09; 思路&#xff1a;根据观察向下走比向右走的增加幅度加1&#xff0c;所以在第i步 向下 对sum的影响是 n-i1 所以最小数字为12。。。。y&#xf…

分布式Redis的分布式锁 Redlock

引言之前自己在用redis来实现分布式锁的时候都是基于单个Redis实例&#xff0c;也就是说Redis本身是有单点故障的&#xff0c;Redis的官方文档介绍了一种"自认为"合理的算法&#xff0c;Redlock来实现分布式Redis下的分布式锁。Martin Kleppmann写了一篇文章分析Redl…

双指针--Codeforces Round #645 (Div. 2) d题

D. The Best Vacation 题目大意&#xff1a; 算出连续x天最多的拥抱&#xff0c;一个月第i号就有i个拥抱 思路&#xff1a;双指针&#xff0c;扫描过去&#xff08;每个月每个月的计算&#xff0c;最后超出的部分再一天一天算&#xff09; 代码 &#xff1a; #include<cstd…

从CLR GC到CoreCLR GC看.NET Core对云原生的支持

内存分配概要前段时间在园子里看到有人提到了GC学习的重要性&#xff0c;很赞同他的观点。充分了解GC可以帮助我们更好的认识.NET的设计以及为何在云原生开发中.NET Core会占有更大的优势&#xff0c;这也是一个程序员成长到更高层次所需要经历的过程。在认识GC的过程中&#x…

一张图带你了解 Insider Dev Tour 2019中国技术大会

点击阅读原文&#xff0c;前往微软Insider Dev Tour 全球官网

Codeforces Round #606 (Div. 2, based on Technocup 2020 Elimination Round 4) 构造

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给nnn个数&#xff0c;让你构造一个尽可能大的矩阵&#xff0c;其中每个点所在的行和列都不含相等元素。 思路&#xff1a; 假设构造的答案矩阵大小为ababab且a<ba<ba<b&#xff0c;那么我们可以…