数据结构和算法学习记录——小习题-二叉树的遍历二叉搜索树

news2024/12/22 19:01:12

目录

二叉树的遍历

1-1

1-2

1-3

二叉搜索树

2-1

2-2

2-3

2-4

答案区


二叉树的遍历

1-1

假定只有四个结点A、B、C、D的二叉树,其前序遍历序列为ABCD,则下面哪个序列是不可能的中序遍历序列?

\textbf{A}.ABCD

\textbf{B}.ACDB

\textbf{C }.DCBA

\textbf{D}.DABC

1-2

对于二叉树,如果其中序遍历结果与前序遍历结果一样,那么可以断定该二叉树____

\textbf{A}.是完全二叉树

\textbf{B}.所有结点都没有左儿子

\textbf{C }.所有结点都没有右儿子

\textbf{D}.这样的树不存在

1-3

已知一二叉树的后序和中序遍历的结果分别是FDEBGCA和FDBEACG,那么该二叉树的前序遍历结果是什么?

\textbf{A}.ABDFECG

\textbf{B}.ABDEFCG

\textbf{C }.ABDFEGC

\textbf{D}.ABCDEFG

二叉搜索树

2-1

已知一颗由1、2、3、4、5、6、7共七个结点组成的二叉搜索树(查找树),其结构如图所示,问:根结点是什么?

\textbf{A}.1

\textbf{B}.4

\textbf{C }.5

\textbf{D}.不能确定

2-2

在上题的搜索树中删除结点1,那么删除后该搜索树的后序遍历结果是:

\textbf{A}.243765

\textbf{B}.432765

\textbf{C }.234567

\textbf{D}.765432

2-3

若一搜索树(查找树)是一个有n个结点的完全二叉树,则该树的最大值一定在叶结点上

\textbf{A}.正确

\textbf{B}.错误

2-4

若一搜索树(查找树)是一个有n个结点的完全二叉树,则该树的最小值一定在叶结点上

\textbf{A}.正确

\textbf{B}.错误



答案区

题号正确答案
1-1D
1-2B
1-3A
2-1C
2-2A
2-3B
2-4A

解析区

1-1

通过一个前序遍历序列和一个中序遍历序列可以唯一地确定一颗二叉树,

现在已知前序遍历,我们要知道选项中哪个是这个前序遍历序列不可能匹配的序列,即两个序列构成的二叉树不存在,那么该中序遍历序列就是不可能的。

对于通过已知两种遍历序列(其中必须有一种为中序)求出唯一的二叉树还有疑惑的可以跳转至数据结构和算法学习记录——层序遍历(层次遍历)、二叉树遍历的应用(输出二叉树中的叶节点、求二叉树的高度、二元运算表达式树及其遍历、由两种遍历序列确定二叉树)_天上_的博客-CSDN博客数据结构和算法学习记录——层序遍历(层次遍历)、二叉树遍历的应用(输出二叉树中的叶节点、求二叉树的高度、二元运算表达式树及其遍历、由两种遍历序列确定二叉树)像这样一组简单的序列,只有先序遍历序列和后序遍历序列的情况下,就有两颗是符合的二叉树,其中根节点是容易确定的,先序的第一个节点就是根,后序的最后一个节点就是根;之前讲过的递归先序遍历二叉树写法很简单,而要输出二叉树中的叶节点,就可以在进行遍历的过程中进行检测,如果为叶节点则输出,否则继续遍历。https://blog.csdn.net/li13437542099/article/details/130177509?spm=1001.2014.3001.5502

经验证,

这颗二叉树的前序遍历序列和中序遍历序列都为ABCD,

故而A选项是正确的。 

经验证,

这颗二叉树的前序遍历序列为ABCD;中序遍历序列为ACDB,

故而B选项是正确的。 

经验证,

这课二叉树的前序遍历序列为ABCD,中序遍历序列为DCBA,

故而C选项是正确的。 

经验证,

这课二叉树的前序遍历序列为ADBC,中序遍历为DABC, 因前序遍历与题干冲突,这课二叉树不存在,

故而,D选项是错误的。 

 综上所述,正确答案选择的是D。

1-2

这道题在我们做完上面一道题之后,很容易的就可以得到答案。

上面一道题中,分别出现了前序遍历序列和中序遍历序列结果一样以及结果相反的情况:

其前序和中序遍历序列结果一样时,是一颗右斜的二叉树,都没有左儿子,而结果相反时,是一颗左斜的二叉树,都没有右儿子。

故而答案选择B:所有结点都没有左儿子。 

1-3

 

这道题就是一个很直接的已知两种序列(其中必须一种为中序)求二叉树的问题。下面直接上手求出二叉树: 

二叉树出来了,我们就很可以得到它的前序遍历序列为:ABDFECG,

故而正确答案选择A。 

2-1

我们知道二叉搜索树的特点是:

左子树小于根结点,右子树大于根结点。

所以根据这个特点来完成第一题即可。

先看A选项,根结点为1。这棵二叉搜索树的结点由1-7构成,很显然,如果根结点为1,那将没有任何数比1还小,而这棵二叉搜索树是有左子树的,

所以1不可能为根结点。

B选项,根结点为4。 

比4要大和比4小的结点数各有3个,不满足该二叉搜索树的结构,所以4也不可能为根结点。

再看C选项,根结点为5。比5大的结点数为2,比5小的结点为4。

从结构上看是可行的,我们来写出这棵二叉搜索树: 

最后看D选项。在已知所有结点的键值的情况下,我们是能够通过左子树的结点数和右子树的结点数来确定根结点的,

即左子树的所有结点的键值小于根结点,右子树的所有结点的键值大于根结点。 

综上所述,正确答案选择的是C。

2-2

 

这道题要求删除上一道题的二叉搜索树的结点1,再求出后序遍历序列。我们在上一道题就已经把完整的二叉搜索树写出来了,所以直接操作即可。

 

最终,删除之后的二叉搜索树写出其后序遍历序列为:243765

与之匹配的选项为A,

故而正确答案选择A。 

2-3

二叉搜索树的最大值一定在最右端,我们画出一颗完全二叉树:

 

通过这个例子就可以很明显地看出这道判断题应该是错误的,在完全二叉树中,一个结点如果有左子树,那么该结点不一定会有右子树,一定会有右子树的情况是为满二叉树。而最大值一定在右端的结点,

故而这道题选择错误的,即B选项。 

2-4

这道题用到的知识点与上一道题是一样的,只不过换成了二叉搜索树的最小值,最小值一定在左端的结点中。

 

这道题选择正确的,即A选项。 


end 


题目来源:MOOC数据结构——陈越、何钦铭 

 

 

 

 

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

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

相关文章

最精简:windows环境安装tensorflow-gpu-2.10.1

Tensorflow 2.10是最后一个在本地windows上支持GPU的版本 1. 通过.whl文件方式安装2.创建anaconda虚拟环境3.安装对应的cuda与cudnn版本,local不必装cuda和cudnn4. 测试tensorflow gpu是否可用 1. 通过.whl文件方式安装 .whl文件的下载地址: tensorflow…

windows下使用vite创建vue项目

windows下使用vite创建vue项目 1 下载安装配置NodeJS1.1 下载1.2 安装1.3 配置1.4 npm镜像加速配置1.6 设置环境变量 2 Vite简单介绍3 Vite创建vue项目3.1 vite创建vue项目的命令3.2 vite创建vue项目步骤 1 下载安装配置NodeJS 1.1 下载 下载地址:https://nodejs.…

全注解下的SpringIoc 续2-bean的生命周期

spring中bean的生命周期 上一个小节梳理了一下Spring Boot的依赖注入的基本知识,今天来梳理一下spring中bean的生命周期。 下面,让我们一起看看bean在IOC容器中是怎么被创建和销毁的。 bean的生命周期大致分为四个部分: #mermaid-svg-GFXNEU…

数据分类分级 数据识别-识别日期类型数据

前面针对数据安全-数据分类分级方案设计做了分析讲解,具体内容可点击数据安全-数据分类分级方案设计,不再做赘述 上面图片是AI创作生成!如需咒语可私戳哦! 目录 前言需求日期格式代码日期类型数据对应正则表达式前言 要做数据分类分级,重要的是分类分级模版的合理性和数…

一致性 Hash 算法 及Java TreeMap 实现

1、一致性 Hash 算法原理 一致性 Hash 算法通过构建环状的 Hash 空间替线性 Hash 空间的方法解决了这个问题,整个 Hash 空间被构建成一个首位相接的环。 其具体的构造过程为: 先构造一个长度为 2^32 的一致性 Hash 环计算每个缓存服务器的 Hash 值&…

「C/C++」C++对已有的类进行扩充

博客主页:何曾参静谧的博客 文章专栏:「C/C」C/C学习 目录 相关术语一、 继承二、组合 相关术语 继承:继承父类后可以拥有父类对应的属性和方法。 组合:将类作为成员对象,基类可以直接调用派生类对应的属性和方法。 一…

MySQL_第08章_聚合函数

第08章_聚合函数 讲师:尚硅谷 - 宋红康(江湖人称:康师傅) 官网: http://www.atguigu.com 我们上一章讲到了 SQL 单行函数。实际上 SQL 函数还有一类,叫做聚合(或聚集、分组)函…

59 openEuler 22.03-LTS 搭建MySQL数据库服务器-软件介绍和配置环境

文章目录 59 openEuler 22.03-LTS 搭建MySQL数据库服务器-软件介绍和配置环境59.1 软件介绍59.2 配置环境59.2.1 关闭防火墙并取消开机自启动59.2.2 修改SELINUX为disabled59.2.3 创建组和用户59.2.4 创建数据盘59.2.4.1 方法一:在root权限下使用fdisk进行磁盘管理5…

JVM笔记 —— 垃圾回收(GC)详解

一、垃圾回收的分类 针对HotSpot JVM的实现,它里面的GC其实准确分类只有两大种: Partial GC:部分收集模式 Young GC:只收集年轻代的GCOld GC:只收集老年代的GC。只有CMS中有这个模式。Mixed GC:收集整个年轻代以及部分…

mybatis的基本使用和理解

mybatis的基本使用和理解 Lombok的使用(使用注解的方式将实体类中的get、set、构造函数代替) Lombok是一个Java库,能自动插入编辑器并且构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或equals方法&#xff0…

Vue3 + TS4.8踩坑之配置husky问题env: sh\r: No such file or directory

一、基本情况: 硬件环境:MacOS 10.14.6 背景:用vue3官方npm init vuelatest初始化创建的vue3 ts4.8项目。 二、问题和解决方案: 问题1:git commit的时候提示:env: sh\r: No such file or directory 原…

0121 进程管理

1.在Linux中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(pid进程号) 2.每个进程都可能以两种方式存在,前台和后台。前台进程即用户当前屏幕上可进行的操作,后台进程即实际操作,由于屏幕上无…

Java中源文件声明规则,以及java包,import关键字的使用

Java中源文件声明规则,以及java包,import关键字的使用。 1. 源文件声明规则 当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意以下规则: a. 一个源文件中只能有一个 public 类。 b. 一个源…

LC电路是如何产生振荡的

电容和电感是两个储能元件,当电源给电容充电完成后, 将开关切到电感,电电感两端的电压是一个正弦波,正弦波频率是: 这时我们称电感和电容产生了振荡。 当然由于电感和电容都是有损耗的,所以这种振荡会慢慢的衰减&…

【文献查找使用】

目录 知识框架No.1 中文文献一、查找、二、下载、三、引用、页码四、什么是DOI呢??? No.2 外文文献一、查找二、下载三、引用、页码 No.3 如何在不下载的情况下进行正确引用呢??一、谷歌学术进行查询二、上sci-hub网站…

使用python的cartopy库读取shapefile文件 .shp文件是乱码

文章目录 问题解决方法 问题 使用python的cartopy库读取shapefile文件即.shp文件乱码 我在使用python的cartopy库读取shapefile文件时出现了乱码 record的.attributes的[‘name’]都是乱码 from cartopy.io import shapereader shp_pathr/home/mw/project/北京市1.shp#文件路…

【Linux 裸机篇(六)】I.MX6U 主频和时钟配置

目录 一、时钟系统详解1. 系统时钟来源2. 7路 PLL 时钟源2.1 ARM_PLL (PLL1)2.2 528_PLL (PLL2)2.3 USB1_PLL (PLL3)2.4 USB2_PLL (PLL7)2.5 ENET_PLL (PLL6)2.6 VIDEO_PLL (PLL5)2.7 AUDIO_PLL (PLL4) 3. 时钟树简介4. 内核时钟设置5. PFD 时钟设置6. AHB、 IPG 和 PERCLK 根时…

SQLite数据库简单小入门学习(一)

目录 一、认识数据库(一)数据库简介(二)数据库类型 二、SQLite数据库(一)SQLite简介(二)学习所需工具(1)scott.db(2)SQLiteSpy.exe &a…

【分布式理论】聊一下 ACID、BASE、CAP、FLP

分布式理论基础 今天我们来聊一下分布式相关基础理论基础,上一篇文章中,我描述了一下分布式系统的纲,但是想要入手学习分布式系统设计,其实需要先从基本理论开始。而知名的ACID、BASE、CAP、FLP都是相关的理论基础。 ACID ACID…

STM32平衡小车 TB6612电机驱动学习

TB6612FNG简介 单片机引脚的电流一般只有几十个毫安,无法驱动电机,因此一般是通过单片机控制电机驱动芯片进而控制电机。TB6612是比较常用的电机驱动芯片之一。 TB6612FNG可以同时控制两个电机,工作电流1.2A,最大电流3.2A。 VM电…