【数据结构】二叉树性质巩固

news2024/11/15 13:58:27

在这里插入图片描述

🚀write in front🚀
📜所属专栏:初阶数据结构
🛰️博客主页:睿睿的博客主页
🛰️代码仓库:🎉VS2022_C语言仓库
🎡您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!
关注我,关注我,关注我你们将会看到更多的优质内容!!

在这里插入图片描述

文章目录

  • 前言
  • 例题1.
  • 例题2.
  • 例题3.
  • 例题4.
  • 例题5.
  • 例题6.
  • 例题7.
  • 例题8.
  • 例题9.
  • 总结

前言

  在学习完二叉树以后,我们需要通过一些选择题来验收自己的学习成果。本篇博客将通过一些经典选择题带你巩固二叉树的相关性质。

例题1.

在这里插入图片描述

答案:A

解析:

A错误: 二叉树指最大孩子个数为2,即树的度为二的树。深度描述的为树的层数。

B正确: 对于任意的树都满足:边的条数比节点个数少1,因为每个节点都有双亲,但是根节点没有

C正确: 正确,参加二叉树性质

D正确: 二叉链一般指孩子表示法,三叉连指孩子双亲表示法,这两种方式是二叉树最常见的表示方式,虽然还有孩子兄弟表示法,该中表示方式本质也是二叉链

例题2.

在这里插入图片描述

答案:D

解析:

A: 树中的节点不能相交

B: 树的度为所有节点中度最大的节点的度

C: 树的深度为根节点到叶子节点的最大深度

例题3.

在这里插入图片描述
答案:C

解析:

通过前序遍历找到子树的根,在中序遍历中找到根的位置,然后确定根左右子树的区间,即根的左侧为左子树中所有节点,根的右侧为右子树中所有节点。

故:根为: 5

5的左子树:4 7 5的右子树: 6 9 1 2

5的左子树的根为: 7 5的右子树的根为:9

7的左子树: 4 7的右:空 9的左子树:6 9的右子树:2

故这棵树的结构为:
在这里插入图片描述

例题4.

在这里插入图片描述
答案:B

解析:

由后序遍历确定子树的根,后序遍历从后向前看,最后一个元素为根,和前序遍历刚好相反,从后向前看后序遍历,应该是根,右,左,根据中序遍历确定子树的左右区间

故:根为: A

A的左子树:JGDHKB A的右子树:ELIMCF

A的左子树的根:B A的右子树的根:C

B的左子树:JGDHK B的右子树:空 C的左子树:ELIM C的右子树:F

B的左子树的根:D C的左子树根:E

D的左子树的根:G D的右子树的根:H E的右子树的根:I

故树的结构为:
在这里插入图片描述

例题5.

在这里插入图片描述
答案:C

解析:

前序确定根,中序找到根确定根的左右子树,最后还原二叉树为:
在这里插入图片描述
前: ABDEC 中:BDEAC

所以既不是满二叉树,也不是完全二叉树

例题6.

在这里插入图片描述
答案:A

解析:

最大深度: 即每次只有一个节点,次数二叉树的高度为n,为最高的高度

最小深度: 此树为完全二叉树, 如果是完全二叉树

根据二叉树性质,完全二叉树的高低为 h = log(n+1)向上取整

故选择A

例题7.

在这里插入图片描述
答案:D

解析:

BFS:
广度优先需要把下一步所有可能的位置全部遍历完,才会进行更深层次的遍历广度优先一般使用队列层序遍历就是一种广度优先遍历。

DFS:
深度优先先遍历完一条完整的路径(从根到叶子的完整路径),才会向上层折返,再去遍历下一个路径,深度优先一般使用递归前序遍历就是一种深度优先遍历。

例题8.

在这里插入图片描述
答案:B

解析:

首先这棵二叉树的高度一定在3~4层之间:

三层:

A(B(C,D),()), A((),B(C,D)), A(B(C,()),D), A(B((),C),D),

A(B,C(D,())), A(B,C((),D))

四层:

如果为四层,就是单边树,每一层只有一个节点,除过根节点,其他节点都有两种选择,在上层节点的左边还是右边,所以2 * 2 * 2共8种

总共为14种。

例题9.

在这里插入图片描述
答案:C

解析:

前序遍历:根 左 右

后序遍历:左 右 根

从二叉树 前序 和 后序遍历结果规则中可以看出,如果树中每个节点只有一个孩子时,遍历结果肯定是反的

比如下面这前序和中序序列所构成的树的结构:

12345

54321
在这里插入图片描述

总结

  更新不易,辛苦各位小伙伴们动动小手,👍三连走一走💕💕 ~ ~ ~ 你们真的对我很重要!最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!

专栏订阅:
每日一题
c语言学习
算法
智力题
初阶数据结构
更新不易,辛苦各位小伙伴们动动小手,👍三连走一走💕💕 ~ ~ ~ 你们真的对我很重要!最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!

在这里插入图片描述

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

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

相关文章

Shell基础了解

一.Shell简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken…

JavaScript【二】JavaScript中的流程控制

文章目录🌟前言🌟流程控制🌟选择结构(条件判断)🌟if分支🌟 switch 分支(多选一的条件判断)🌟循环结构🌟for🌟while🌟 do...while🌟区别🌟break和c…

从元宇宙婚礼和元宇宙游戏看元宇宙的“史前时代”

元宇宙,正在从科幻走进现实——确切地说,是走进现实中的虚拟世界。这一切,离不开强有力的高科技及其产品化基础设施设备的支撑。而且,元宇宙不会单由哪一家公司建成,也不会一蹴而就,它需要多方参与和一定的…

外包干了三年,算是废了...

先说一下自己的情况。大专生,19年通过校招进入湖南某软件公司,干了接近3年的测试,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了三年&#xff0c…

C语言基础——数组与字符串

文章目录一、数组1.数组的意义2.数组类型如何表示3.数组变量的定义3.1求数组类型大小3.2数组的长度4.数组中成员的使用4.1数组的下标4.2如何表示数组成员5.常见问题6.冒泡排序7.字符数组 字符类型数组7.1定义7.2物联网 -- 服务器/web -- 上层使用大多是字符串。7.3定义1个字符型…

javaweb考研辅导网站交流

设计内容: 前台技术:html/css/javascript。 后台技术:java/jspServlet/struts2框架。 数据库技术:mysql。 具体功能模块主要包括: 1、考研浅谈:专业不同的热心的考研成功者能够发布不同科目的复习心得等。…

JavaScript 基础入门速成下篇

JavaScript 高级 数组及操作方法 数组,即一组数据的集合,JavaScript中,数组里面的数据可以时不同类型的; 定义数组的方法 1. 对象实例创建 new Array 2. 直接量创建 // 对象实例创建 var arr new Array(1,2,3)// 直接量…

4.11每日一题

翀某说:C语言快忘了,决定每日一练,周末超难度训练 当然了翀某说,python自学中,所以每道题除了C语言之外,看看python能不能写 题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组…

入门前端框架Layui

🏭 作者:哈桑c(CSDN平台) ⛺️ 专栏:前端自学记录 文章目录文章简介说在前面的话需要具备的基础1、Layui 的介绍2、Layui 的下载和使用3、Layui 示例4、Layuimini layui-vue结语文章简介 本文为大家介绍前端 UI 组件…

【Linux】进程概念二

文章目录进程概念二1. 进程状态2. 进程状态查看3. 僵尸进程3.1 僵尸进程的危害4. 孤儿进程5. 环境变量5.1 常见环境变量5.2 查看环境变量的方法5.3 测试PATH5.4 环境变量相关的命令5.5 环境变量的组织方式5.6 通过代码获取环境变量6. 程序地址空间7. 进程地址空间8. 扩展8.1 为…

前端学习路线(2023版)超详细

一:前端开发基本功 俗话说的好“不积跬步,无以至千里”,学习也是一样的从简单的基础的知识点开始慢慢积累,首先就是掌握前端语言的基础知识3大部分(HTML、CSS、页面制作工具)其中包含了元素和属性、表单和图…

Adobe 中国

Adobe中国是Adobe公司在中国设立的分支机构,其总部位于上海。 Adobe中国的主要业务包括销售Adobe公司的软件产品、提供技术支持和服务、开展市场推广和宣传等工作。 作为全球领先的创意设计软件提供商,Adobe中国向中国用户提供了一系列功能强大的软件产…

webpack配置本地TypeScript编译环境和开启本地服务

目录 1.创建一个文件夹 2.初始化一个package.json文件对我们安装包进行记录 3.安装webpack 4.配置webpack.config.js文件 1.创建一个文件夹 2.初始化一个package.json文件对我们安装包进行记录 执行npm init,文件命名为ts_demo,然后一直回车。 3.安装…

【Spring6】| Spring IoC注解式开发

目录 一:Spring IoC注解式开发 1. 回顾注解 2. 声明Bean的四个注解 3. Spring注解的使用 4. 选择性实例化Bean 5. 负责注入的注解(重点) 5.1 Value 5.2 Autowired与Qualifier 5.3 Resource 6. 全注解式开发 一:Spring I…

开放式耳机的颠覆之作!南卡OE Pro新皇降临!佩戴和音质双重突破

千呼万唤的南卡OE Pro终于要在最近正式官宣上线,此消息一经放出,蓝牙耳机市场就已经沸腾。NANK南卡品牌作为国内的音频大牌,发展和潜力一直备受业内关注,这次要上线的南卡OE Pro更是南卡十余年来积累的声学技术结晶之一。 据透露…

ChatGPT惨遭围剿?多国封杀、近万人联名抵制……

最近,全世界燃起一股围剿ChatGPT的势头。由马斯克、图灵奖得主Bengio等千人联名的“暂停高级AI研发”的公开信,目前签名数量已上升至9000多人。除了业内大佬,欧盟各国和白宫也纷纷出手。 最早“动手”的是意大利,直接在全国上下封…

【Redis】Redis 是如何保证高可用的?(背诵版)

Redis 是如何保证高可用的?1. 说一下 Redis 是如何保证高可用的?2. 了解过主从复制么?2.1 Redis 主从复制主要的作用是什么?2.2 Redis 主从模式的拓扑结构?(1)一主一从结构(2)一主多…

客快物流大数据项目(一百一十一):Spring Boot项目部署

文章目录 Spring Boot项目部署 一、​​​​​​​​​​​​​​项目打包 二、运行 Spring Boot项目部署

Hadoop之Mapreduce序列化

目录 什么是序列化: 什么是反序列化: 为什么要序列化: Java的序列化: Hadoop序列化: 自定义序列化接口: 实现序列化的步骤: 先看源码进行简单分析: 序列化案例实操: 案例需…

【JavaEE】常见的锁策略都有哪些?

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶在Java多线程中,常见的锁策略都有哪些?这些锁策略应该怎么理解? (乐观锁vs悲观锁,轻量级锁vs重量级锁,自旋锁vs挂起等待…