数据结构:二叉树经典例题(单选题)-->你真的掌握二叉树了吗?(第一弹)

news2024/12/23 13:59:10

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关二叉树的经典例题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!

C 语 言 专 栏:C语言:从入门到精通

数据结构专栏:数据结构

个  人  主  页 :stackY、

目录

前言:

一、

二、

三、 

四、

五、

六、

七、

八、

九、 


前言:

前面我们讲了二叉树的顺序结构 和 二叉树的链式结构,将二叉树的基本知识和实现过程都了解了一遍,那么本期我们来看看关于二叉树的经典例题都有哪些,在此之前,我们需要了解二叉树的性质,那么话不多说,我们直接开始!!!

 一、

1. 在用树表示的目录结构中,从根目录到任何数据文件,有( )通道

A.唯一一条

B.二条

C.三条

D.不一定

题解:   A

树的特点是不相交,所以不可能有多个路径同时到达一个点。

二、

2. 在一颗度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有2个,则叶子结点有( )个 

A.4

B.5

C.6

D.7

题解:  C

设度为i的节点个数为ni, 该树总共有n个节点,则n=n0+n1+n2+n3. 

有n个节点的树的总边数为n-1条.

根据度的定义,总边数与度之间的关系为:n-1=0*n0+1*n1+2*n2+3*n3.

联立两个方程求解,可以得到n0 = n2 + 2n3 + 1,  n0=6

或者可以通过画图来解答:

三、 

3. 一颗拥有1000个结点的树度为4,则它的最小深度是(  )

A.5

B.6

C.7

D.8

题解:  B

如果这棵树每一层都是满的,则它的深度最小,树的度为4,那么假设它为一个四叉树,高度为h,则这个树的节点个数为(4^h - 1) / 3,当h = 5, 最大节点数为341, 当h = 6, 最大节点数为1365,所以最小深度应该为6。

四、

4. 下列关于二叉树的叙述错误的是(   )

A.二叉树指的是深度为 2 的树

B.一个 n 个结点的二叉树将拥有 n-1 条边

C.一颗深度为 h 的满二叉树拥有 2^h-1 个结点(根结点深度为1)

D.二叉树有二叉链和三叉链两种表示方式

题解:

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

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

C正确:  正确,参照二叉树的性质

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

五、

5. 一颗完全二叉树有1001个结点,其叶子结点的个数是( ) 

A.251

B.500

C.501

D.不能确定

题解: C

该题需要用到二叉树性质:在任意二叉树中,度为0的节点都比度为2的节点多1个,即 n0 = n2 + 1另外,在完全二叉树中,如果节点总个数为奇数,则没有度为1的节点,如果节点总个数为偶数,只有一个度为1的节点。

因此:n0 + n1 + n2 = 1001 节点总数为奇数,没有度为1的节点

n0 + 0 + n2 = 2*n0-1 = 1001 n0 = 501

六、

6. 在一颗完全二叉树中,某一个结点没有其左孩子,则该结点一定(  )

A.是根结点

B.是叶结点

C.是分支结点

D.在倒数第二层

题解:

完全二叉树中如果一个节点没有左孩子,则一定没有右孩子,必定为一个叶子节点,最后一层一定为叶子节点,但是倒数第二层也可能存在叶子节点。

 七、

7. 设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为(  )个

A.11

B.12​

C.13

D.14

题解:

设Ni表示度为i的节点个数,则节点总数 N = N0 + N1 + N2

节点个数于节点边的关系: N个节点的树有N-1个边

边与度的关系:N - 1 = N1 + 2 * N2

故:N0 + N1 + N2 - 1 = N1 + 2 * N2

因此,得:N0 = N2 + 1

回到原题,N0 = 3,N1 = 8,可得N2 = 2。

因此答案是 3 + 8 + 2 = 13。

八、

8. 已知某二叉树的前序遍历序列为5 7 4 9 6 2 1,中序遍历序列为4 7 5 6 9 1 2,则其后序遍历序列为(  ) 

A.4 2 5 7 6 9 1

B.4 2 7 5 6 9 1

C.4 7 6 1 2 9 5

D.4 7 2 9 5 6 1

题解: C

要知道后序遍历首先得将二叉树的结构还原出来,由于前序遍历首先访问的是根节点,所以5是根节点,然后在中序遍历的结果中找到5,5的左边就是一根节点为5的一颗左子树,右边就是一颗右子树,然后再找7,7的右边和左边又是两颗树,依次类推:

故:根为: 5

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

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

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

故这棵树的结构为:

九、 

9. 已知某二叉树的中序遍历序列为JGDHKBAELIMCF,后序遍历序列为JGKHDBLMIEFCA,则其前序遍历序列为(  )

A.ABDGHJKCEFILM

B.ABDGJHKCEILMF

C.ABDHKGJCEILMF

D.ABDGJHKCEIMLF

题解: 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

故树的结构为:

朋友们、伙计们,美好的时光总是短暂的,我们本期的的分享就到此结束,预知后事如何请听下回分解~~~最后看完别忘了留下你们弥足珍贵的三连喔,感谢大家的支持!

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

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

相关文章

消防通道堵塞识别 opencv

消防通道堵塞识别系统通过opencvpython网络模型技术,消防通道堵塞识别对消防通道的状态进行实时监测,检测到消防通道被堵塞时,将自动发出警报提示相关人员及时采取措施。OpenCV的全称是Open Source Computer Vision Library,是一个…

linux-centOS7.9通过docker安装cwmp server:drumsergio/genieacs

一、安装环境 #查看centOS版本 [rootMiWiFi-R4CM-srv network-scripts]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) #自动查找最新安装包并升级 [rootMiWiFi-R4CM-srv ~]# sudo yum upgrade 二、关闭firewalld、NetworkManager、selinux 关闭防火墙、…

【黑马头条-Java微服务项目】

黑马头条-Java微服务项目 (一)、项目介绍1.项目背景介绍(1).基本介绍(2).业务说明(3).项目术语介绍 2.技术栈说明(1).技术栈-基础六层技术(2).技术栈-服务四层技术(3).技术栈-分布 (二)、nacos环境搭建 (一)、项目介绍 1.项目背景介绍 (1).基本介绍 随着智能手机的普及&…

在线选课的微信小程序(微信前端+网站后端)

目录 一、前言 二、微信小程序端(老师、学生) 1.学生用户前端小程序界面 2.老师前端小程序界面 三、后端(管理员、老师、学生) 3.老师后端 4.管理员后端 四、代码获取与调试 一、前言 这是一个在线选课的微信小程序&#…

PID控制算法: 3、Tuning Changes(参数调整)

改变控制参数积分项对输出结果的影响 可靠的控制系统应该有能力实时变更系统的参数 The Beginner’s PID acts a little crazy if you try to change the tunings while it’s running. Let’s see why. Here is the state of the beginner’s PID before and after the param…

STM32F4 点亮灯泡【顺序点亮、按键点亮】

一、顺序点亮灯泡 ①初始化 在user.c文件中,我们需要对LED进行初始化设置。 在函数LED_GPIO_Config中,可以修改代码如下: /*********************************************************************** LED初始化 备注 LED 接在GPC14引脚上…

【Springboot集成Neo4j完整版教程】

🚀 Neo4j 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,C…

基于Python+OpenCV图像识别的连连看辅助工具(深度学习+机器视觉)含全部工程源码及视频演示

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境Pycharm 环境 模块实现1. 获取句柄2. 图像划分3. 建立矩阵4. 矩阵求解 系统测试工程源代码下载其它资料下载 前言 本项目目标是利用pywin32来获取游戏图像信息,并利用OpenCV进行识别和处理&#xff…

2023学习日志

[牛客网习题练习] 此系列文章仅是对个人学习的记录如有错误望大家指正与谅解。 1.题目描述:输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出…

文本分析-使用Python做词频统计分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

【JDK】二、环境变量从jdk17切换为jdk8后不生效的解决办法

环境变量从jdk17切换为jdk8后不生效的解决办法 一、问题描述二、环境变量为java17时的截图三、修改为java8时的截图四、解决办法1、原因分析 2、删除jdk17和jdk8默认的配置或者把默认的下移,统一使用自己的%JAVA_HOME%.3、同样我们把JAVA_HOME改成17 重启后&#xf…

面试题:mybatis中# 和 $ 的区别

面试题:mybatis中# 和 $ 的区别 一、主要区别如下: 1、#{}可以理解为预处理,而${}是直接替换。 #传入的参数在SQL中显示为字符串,会对自动传入的数据加上双引号。 $传入的参数在SQL中直接显示为传入的值 2、#{}试用于所有类型…

不要再封装各种Util工具类了,这个神级框架你值得拥有!

一、功能 二、安装 三、简单测试 今天给大家推荐一个非常好用的Java工具类库,企业级常用工具类,基本都有,能避免重复造轮子及节省大量的开发时间,非常不错,值得大家去了解使用。 Hutool 谐音 “糊涂”,…

STM32F4的连接初始化【ST-LINK、USB To TTL】

所需设备:STM32F4、杜邦线(彩色小电线) * 8 、USB 转 TTL 0.认识设备 ST-link USB 转TTL STM32F4主板 1.连线 ST-Link连线 一共需要四根线 序号从左至右,从上至下进行编号 1 - 3.3V 连接 1(黄色)2- GND …

并发编程.

1、概述 1.1 进程和线程 进程:操作系统资源分配的最小单位。 程序由指令和数据组成,指令要执行,数据要读写,就必须将指令加载至cpu,数据加载至内存,在指令运行过程中还需要用到磁盘、网络等设备&#xff0…

python:并发编程(十八)

前言 本文将和大家一起探讨python并发编程的实际运用,会以一些我实际使用的案例,或者一些典型案例来分享。本文使用的案例是我实际使用的案例(下篇),是基于之前效率不高的代码改写成并发编程的。让我们来看看改造的过…

计算逆波兰表达式

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现 ⭐码云地址超链接(Gitee):这里存放我学…

如何搭建Nginx网站服务

目录 一、首先搭建Nginx服务 二、授权的访问控制 第一步 安装依赖包 第二步 生成用户密码认证文件 第三步 修改文件属性和权限 第四步 修改配置文件 第五步 用浏览器测试网站 三、基于IP地址进行限制 第一步 修改配置文件 第二步 用两台设备进行访问测试 四、基于域…

工人规范操作识别系统 yolov5

工人规范操作识别系统通过yolov5python网络模型技术,工人规范操作识别系统对工人的操作进行实时监测,当工人规范操作识别系统检测到工人操作不符合规范时,将自动发出警报提示相关人员采取措施。YOLOv5中在训练模型阶段仍然使用了Mosaic数据增…

HCI-1

3.1 定义 就本文档而言,适用以下术语和定义: 嵌入式安全元件主机:在不可移动安全元件中实现的主机 门:主机内部运行的服务的入口点 主机:运行一项或多项服务的逻辑实体 主机控制器:还负责管理主机网络的…