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

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

二叉树的遍历

1-1

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

AA.ABCD

BB.ACDB

C C .DCBA

DD.DABC

1-2

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

AA.是完全二叉树

BB.所有结点都没有左儿子

C C .所有结点都没有右儿子

DD.这样的树不存在

1-3

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

AA.ABDFECG

BB.ABDEFCG

C C .ABDFEGC

DD.ABCDEFG

二叉搜索树

2-1

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

AA.1

BB.4

C C .5

DD.不能确定

2-2

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

AA.243765

BB.432765

C C .234567

DD.765432

2-3

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

AA.正确

BB.错误

2-4

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

AA.正确

BB.错误

答案区

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

解析区

1-1

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


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


对于通过已知两种遍历序列(其中必须有一种为中序)求出唯一的二叉树还有疑惑的可以跳转至

数据结构和算法学习记录——层序遍历(层次遍历)、二叉树遍历的应用(输出二叉树中的叶节点、求二叉树的高度、二元运算表达式树及其遍历、由两种遍历序列确定二叉树)_天上_的博客-CSDN博客

数据结构和算法学习记录——层序遍历(层次遍历)、二叉树遍历的应用(输出二叉树中的叶节点、求二叉树的高度、二元运算表达式树及其遍历、由两种遍历序列确定二叉树)像这样一组简单的序列,只有先序遍历序列和后序遍历序列的情况下,就有两颗是符合的二叉树,其中根节点是容易确定的,先序的第一个节点就是根,后序的最后一个节点就是根;之前讲过的递归先序遍历二叉树写法很简单,而要输出二叉树中的叶节点,就可以在进行遍历的过程中进行检测,如果为叶节点则输出,否则继续遍历。

经验证,

这颗二叉树的前序遍历序列和中序遍历序列都为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



目录
相关文章
|
8月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
249 0
|
机器学习/深度学习 存储 算法
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
|
7月前
|
机器学习/深度学习 运维 算法
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
【微电网多目标优化调度】多目标学习者行为优化算法MOLPB求解微电网多目标优化调度研究(Matlab代码实现)
340 1
|
算法 数据可视化 开发者
为什么要学习数据结构与算法
今天,我向大家介绍一门非常重要的课程——《数据结构与算法》。这门课不仅是计算机学科的核心,更是每一位开发者从“小白”迈向“高手”的必经之路。
为什么要学习数据结构与算法
|
11月前
|
存储 监控 算法
公司内部网络监控中的二叉搜索树算法:基于 Node.js 的实时设备状态管理
在数字化办公生态系统中,公司内部网络监控已成为企业信息安全管理体系的核心构成要素。随着局域网内终端设备数量呈指数级增长,实现设备状态的实时追踪与异常节点的快速定位,已成为亟待解决的关键技术难题。传统线性数据结构在处理动态更新的设备信息时,存在检索效率低下的固有缺陷;而树形数据结构因其天然的分层特性与高效的检索机制,逐渐成为网络监控领域的研究热点。本文以二叉搜索树(Binary Search Tree, BST)作为研究对象,系统探讨其在公司内部网络监控场景中的应用机制,并基于 Node.js 平台构建一套具备实时更新与快速查询功能的设备状态管理算法框架。
370 3
|
存储 算法 Java
算法系列之数据结构-二叉树
树是一种重要的非线性数据结构,广泛应用于各种算法和应用中。本文介绍了树的基本概念、常见类型(如二叉树、满二叉树、完全二叉树、平衡二叉树、B树等)及其在Java中的实现。通过递归方法实现了二叉树的前序、中序、后序和层次遍历,并展示了具体的代码示例和运行结果。掌握树结构有助于提高编程能力,优化算法设计。
425 10
 算法系列之数据结构-二叉树
|
算法 Java
算法系列之数据结构-二叉搜索树
二叉查找树(Binary Search Tree,简称BST)是一种常用的数据结构,它能够高效地进行查找、插入和删除操作。二叉查找树的特点是,对于树中的每个节点,其左子树中的所有节点都小于该节点,而右子树中的所有节点都大于该节点。
568 22
|
存储 监控 算法
基于 PHP 二叉搜索树算法的内网行为管理机制探究
在当今数字化网络环境中,内网行为管理对于企业网络安全及高效运营具有至关重要的意义。它涵盖对企业内部网络中各类行为的监测、分析与管控。在内网行为管理技术体系里,算法与数据结构扮演着核心角色。本文将深入探究 PHP 语言中的二叉搜索树算法于内网行为管理中的应用。
179 4
|
监控 算法 安全
关于公司电脑桌面监控中 PHP 二叉搜索树算法的深度剖析
在现代企业管理中,公司电脑桌面监控系统通过二叉搜索树(BST)算法保障信息安全和提高效率。本文探讨PHP中的BST在监控场景的应用,包括节点定义、插入与查找操作,并展示如何管理时间戳数据,以快速查询特定时间段内的操作记录。BST的高效性使其成为处理复杂监控数据的理想选择。
174 2
|
存储 算法
非递归实现后序遍历时,如何避免栈溢出?
后序遍历的递归实现和非递归实现各有优缺点,在实际应用中需要根据具体的问题需求、二叉树的特点以及性能和空间的限制等因素来选择合适的实现方式。
395 59

热门文章

最新文章