【数据结构】——树的相关习题

目录

  • 一、选择填空判断题
    • 题1
    • 题2
    • 题3
    • 题4
    • 题5
    • 题6
    • 题7
    • 题8
    • 题9
  • 二、应用题
    • 题10(遍历序列)
    • 题11(存储结构)
    • 题12 13(二叉树/树、森林之间的转换)
    • 题14(线索二叉树)

一、选择填空判断题

题1

1、设高度为h的二叉树上只有度为0和度为2的结点,则该二叉树中所包含的结点数至少为(),最多为()。
A、h ;2h-1
B、2h-1 ; 2h-1
C、2h+1; 2h-1-1
D、h+1;2h-1

解析:(B)
最少的情况下,除了根结点该层为1个结点以外,其余h-1层都有2个结点,得2(h-1),即2(h-1)+1=2h-1。
最多的情况下,除了最后一层度为0,其余结点都是度为2的结点,即 2h-1个。

题2

2、一棵有124个叶结点的完全二叉树,最多有( )个结点。
A、247
B、248
C、249
D、250

解析:(B)
由于n0=n2+1,且N=n0+n1+n2,度为0和度为1的结点相差为1,所以完全二叉树中度为1的结点n1只可能是0或1,即当总结点数为偶数时n1=1,为奇数时n0=0。
本题中,n0=124,可得n2=123,由于是考虑最多结点数,即n1=1,所以N=124+123+1=248。

题3

3、若一棵二叉树有126个结点,在第7层(根结点在第1层)至多有()个结点。
A、32
B、64
C、63
D、不存在第7层

解析:(C)
考虑第1层到第6层结点都是满的情况,即第1层到第6层结点的结点数量为1+2+4+8+16+32=63个。第7层最多可有64个结点,由于二叉树有126个结点,即第7层还有126-63=63个结点。

题4

4 、一棵有n个结点的二叉树采用二次链表存储结点,其中非空指针数为(),空指针数为()。
A、n+1;n-1
B、n;n-1
C、n-1;n+1
D、2n;2n-1

解析:(A)
n个结点的数有n-1条分支,每个分支对应一个指针,所以非空指针数为n-1;另外,由于每个结点中包含2个指针域(左指针域lchild、右指针域rchild),总指针域数量减去非空指针数即为空指针数,2n-(n-1)=n+1。

题5

5、在二叉树的前序序列、中序序列和后序序列中,所有叶子结点的先后顺序是()。
A、都不相同
B、完全相同
C、前序序列和中序序列相同,与后序序列不同
D、中序序列和后序序列相同,与前序序列不同

解析:(B)
三种遍历方式中,访问左右子树的顺序是相同的,只是访问根结点的先后顺序不同,故所有叶子结点的先后顺序是相同的。

题6

6、线索二叉树是一种()结构。
A、逻辑
B、逻辑和存储
C、物理
D、线性

解析:(C)
二叉树是一种逻辑结构,而线索二叉树是加上线索的链表结构,是一种物理结构。

题7

7、在有n个叶子结点的哈夫曼树中,非叶子结点的总数是();若该哈夫曼树有215个结点,对其进行哈夫曼编码,可以得到()个不同的码字。
A、n-1;108
B、n;107
C、2n-1;214
D、2n;215

解析:(A)
哈夫曼树中只有度为0和2的结点,由n0=n2+1,可得:非叶子结点的总数为n-1。
结点总数N=n0+n2,且n0=n2+1,N=215代入可得,n0=108。

题8

8、找出下列条件的二叉树:
A、先序遍历序列与后序遍历序列相同,为()
B、中序遍历序列与后序遍历序列相同,为()
C、先序遍历序列与中序遍历序列相同,为()
D、中序遍历序列与层次遍历序列相同,为()

解析:
A、空树或只有根结点的二叉树;
B、空树或任一结点至多只有左子树;
C、空树或任一结点至多只有右子树;
D、空树或任一结点至多只有右子树。

题9

9、(判断)哈夫曼编码树中,两个频率相同的字符具有相同的哈夫曼编码。

解析:(×)
不会有相同的哈夫曼编码,除非它们的字符相同,从而得到的哈夫曼编码也相同。

二、应用题

题10(遍历序列)

题型通过已知树的遍历序列,求其他遍历序列

10、某二叉树的中序遍历序列为ABCDEFG,后序遍历序列为BDCAFGE,求其先序遍历序列。

解:可知,二叉树的先、中、后序遍历序列以及层次遍历序列的遍历顺序如下:

遍历名称遍历规则
先序遍历序列根 > 左 > 右
中序遍历序列左 > 根 > 右
后序遍历序列左 > 右 > 根
层次遍历序列左 > 右

首先,通过所给的两个序列恢复二叉树,后序遍历序列为BDCAFGE,所以该序列的最后一个元素“E”为二叉树的根结点,从而可得到:
在这里插入图片描述
继续对左子树和右子树的中序遍历和后序遍历进行拆分,先看E的左子树,由后序序列可知左子树中A为根结点,且由后序序列可知A无左子树,右子树为BCD;同理,E的右子树中,右子树中G为根结点,但是无法判断F为其左子树还是右子树,所以看中序遍历序列中,G的左边是F,由中序遍历规则,所以F为G的左子树,同时G无右子树,如下:
在这里插入图片描述
同上,可得C为根结点A的右子树,C的左子树为B,右子树为D,如下既是一棵完整的二叉树:
在这里插入图片描述
故可得其先序遍历序列:EACBDGF。

题11(存储结构)

题型根据树的存储结构,画出二叉树

11、下图是一个二叉树的顺序存储结构,其中空白表示该结点不存在,画出该二叉树,并求出该二叉树的中序序列和后序序列。

在这里插入图片描述
解:按完全二叉树存储,其中空白的为空,如下:
在这里插入图片描述
注:其中黑色标注只是为了更清楚展示该二叉树,二叉树建议只留蓝色部分即可。
中序序列:BADCFE;后序序列:BDFECA。

题12 13(二叉树/树、森林之间的转换)

题型一根据所给二叉树,将其转换为树

12、将以下这棵二叉树转换为树。

在这里插入图片描述
解:第一步,旋转。将该二叉树中除了根结点左右子树的所有结点向右旋转45°,如下:
在这里插入图片描述
第二步,连线。若某结点的左孩子有右子树,则右子树与该结点相连,A结点的左孩子B有右子树D,所以将A与D相连;C结点的左孩子E有右子树H,所以将C与H相连,如下:
在这里插入图片描述
第三步,断线。删除除根结点外各结点右子树的右分支与其父结点连线,如下:
在这里插入图片描述
即可得到二叉树转换而来的树:
在这里插入图片描述
题型二根据所给森林,将其转换为二叉树

13、已知下面由三棵树组成的森林,将其转换为二叉树。

在这里插入图片描述
解:第一步,连线。首先将所有结点的兄弟结点相连,另外各树的根结点也相连,如下:
在这里插入图片描述
第二步,断线。只保留所有结点的最左边子女,而其他结点断开,如下:
在这里插入图片描述
断开后:
在这里插入图片描述
第三步,旋转。以第一棵树的根结点为轴心,顺时针旋转45°,如下:
在这里插入图片描述

题14(线索二叉树)

题型根据所给二叉树,画出该二叉树的线索二叉树

14、设一棵二叉树的先序、中序遍历序列分别为ABDFCEGH和BFDAGEHC,求这棵二叉树的后序线索树。

解:首先,求出该二叉树,可以得到:
在这里插入图片描述
第一步,求出要画的相应线索二叉树的先/中后序遍历序列。可得到其后序遍历序列是FDBGHECA。
第二步,画线索(针对二叉树中缺少左、右孩子的结点)。若该结点无左孩子,则线索指向相应线索二叉树的先/中/后序遍历序列的前驱,若无前驱则指向NULL;若该结点无右孩子,则线索指向相应线索二叉树的先/中/后序遍历序列的后继,若无后继则指向NULL。
例如,结点D无右孩子,在后序遍历序列中结点D的后继是B,所以指向B;结点F无左孩子,在后序遍历序列中结点F无前驱结点,所以指向NULL;结点H无左孩子和右孩子,在后序遍历序列中结点H的前驱是G,后驱是E,所以分别指向G和E,如下:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM那些事 (含经典面试题)

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 前言: 1. JVM:Java 虚拟机&#x…

由于找不到iutils.dll而造成的错误,要怎么去解决?

在使用电脑或运行某些软件时,有时会遇到“找不到iutils.dll”的错误提示。这个错误通常表示缺少iutils.dll文件或者该文件已经损坏。如果你遇到了这个问题,不要担心,因为有很多方法可以解决这个问题。下面我们一起来看看找不到iutils.dll的问…

API电商 ERP 数据管理

没有 API,应用之间的通信将会被扼杀;软件开发者将不断重写并执行相同功能的软件;创新的脚步将会放缓。 API 随处可见。大到一个软件系统,小到几行程序,只要具备了一定的特征,都可以被称作 API。那么&#…

【网络】基础知识1

目录 网络发展 独立模式 网络互联 局域网LAN 广域网WAN 什么是协议 初识网络协议 协议分层 OSI七层模型 TCP/IP四层(或五层)模型 OSI和TCP/IP对比 网络传输流程 什么是报头 局域网通信原理 同网段的主机通讯 跨网段的主机通讯 数据包封装…

数据治理8大核心模块建设

数据治理是一个去中心化、多元参与的系统工程。一个全面且明确的数据治理体系,可以帮助组织构建生态式、协同化治理路径,最大化地提升整体数据质量,实现数据战略,激活新型生产力。 本文以元数据、主数据、数据标准、数据质量、数…

jenkins主从节点安装及pipeline构建

一、背景 通过Jenkins主节点配置的pipeline下发给从节点执行,从而兼容容器化执行 二、安装主节点 docker-compose.yml jenkins:user: rootrestart: alwaysimage: jenkinsci/blueoceancontainer_name: jenkins# network_mode: hostports:- "8081:8080"-…

【算法与数据结构】209.长度最小的子数组

文章目录 题目一、暴力穷解法二、滑动窗口法完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 题目 一、暴力穷解法 思路分析:这道题涉及到数组求和,那么我们很容易想到利用两个for循环来写,…

移动端浏览器性能优化探索

目录 前言 如何衡量卡顿 FPS 与卡顿的关系 新的衡量指标 浏览器动画渲染 GPU扮演的角色 合理避免回流和重绘 浏览器工作流程 解决方案 在移动端的页面开发过程中,我们经常提及页面性能优化、消除页面卡顿的话题,如何确定优化策略,我…

“老年养生”APP的设计与开发

摘要:我国人口老龄化呈上升趋势,老年人口比重增加。这是我国经济发展的一大挑战,也是老年健康产业的一大机遇。随着我国经济发展,越来越多的人开始关注自己的身体,这导致各种关于健康的网络应用层出不穷。但是经过分析…

【python技能树】python简介

1 Python定义 Python 是一种简单易学并且结合了解释性、编译性、互动性和面向对象的脚本语言。Python提供了高级数据结构,它的语法和动态类型以及解释性使它成为广大开发者的首选编程语言。 Python 是解释型语言: 开发过程中没有了编译这个环节。类似于…

Python中打印彩色信息的方法

在Python中,可以使用print()函数打印出彩色信息。在使用print()打印之前,需要调用os标准库对系统进行设置。 1 os标准库 1.1 简介 os是Operating System的简写,即“操作系统”。os标准库是一个操作系统接口模块,提供了使用操作…

学生成绩管理系统(Java)

目录 ​编辑 需求分析: 登录界面(LoginPanel) 主界面(MainApp) 重写 1.班级重写(cs.practics.bean.BjBean.java) 2.课程重写(cs.practics.bean.CourseBean.java) 3.成绩重写(cs.practics.bean.MarkBean.java) 4.学生重写(cs.practics.bean.StudentBean.java…

Spring Cloud 容错机试 Hystrix 服务降级 RestTemplate:

Ribon的服务降级操作 雪崩效应: 如果短信服务炸了后面的所有服务就会起连锁反应造成全部服务挂掉,这就是雪崩效应,那么其实短信服务又不是我们主要业务,这个时候我们可以采用服务降级,服务降级就是暂时的把短信服务停…

springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】

文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…

安装CHATGPT保姆级教程(windows版)

ai包链接: 链接:https://pan.baidu.com/s/1tKuG4OfkewlDRU292vx8mw?pwdtw8t 提取码:tw8t 一、安装篇 安装python,使用软件包中的python安装程序安装后检查是否安装成功,cmd窗口运行命令: python –vers…

python自动化爬虫实战

python自动化爬虫实战 偶然的一次机会再次用到爬虫,借此机会记录一下爬虫的学习经历,方便后续复用。 需求:爬取网站数据并存入的csv文件中,总体分为两步 爬取网站数据存到到csv文件中 1、配置爬虫环境 1.1、下载自动化测试驱动 …

【2023最新】Python + Pycharm + Anaconda安装配置一条龙

【2023最新】Python Pycharm Anaconda安装配置一条龙 文章目录 【2023最新】Python Pycharm Anaconda安装配置一条龙1. Python1.1 Python下载1.2 Python安装1.3 测试 2. Pycharm2.1 Pycharm下载2.2 Pycharm安装配置2.3 你好Pycharm 3. Anaconda3.1 Anaconda下载3.2 Anacond…

【网络】TCP通讯(三次握手、四次挥手;滑动窗口;TCP状态转换;端口复用;TCP心跳检测机制)

前言:建议看着图片,根据文字描述走一遍TCP通讯过程,加深理解。 目录 TCP通信时序: 1)建立连接(三次握手)的过程: 2)数据传输的过程: 3)关闭连…

opencv4 傅里叶变换

傅里叶变换 ① 高频:变化剧烈的灰度分量,例如边界礁石。 ② 低频:变化缓慢的灰度分量,例如一片大海。 ③ 高通滤波器:只保留高频,会使得图像细节增强。高频边界锐化了,增强了,细节…

网瘾少年转行软件测试,月薪20k? 叛逆少年终归成长...

前言: 高中住校期间沉迷游戏(DNF),尤其是高三那年,晚上翻墙出去通宵,白天上课睡觉,高考自然是考了个稀碎,高考结束那个暑假刚开始觉得整个人都自由了,爸妈看我没考上大学,知道我心情…