当前位置: 首页 > news >正文

数据结构 树练习题

目录

判断

选择


判断

1.一棵有124个结点的完全二叉树,其 叶结点个数是确定的。

【答案】正确

【解析】完全二叉树

若设二叉树的深度为h 除第 h 层外 其它各层 1~(h-1) 的结点数都达到最大个数(即1~(h-1)层为一个满二叉树) 第 h 层所有的结点都连续集中在最左边 就是完全二叉树

124 = 1 + 2 + 4 + 8 + 16 + 32 + 61

有61个叶节点

2.二叉树中序线索化后,不存在空指针域。

【答案】错误
【解析】非空二叉树中序遍历第一个结点无前驱,最后一个结点无后继,这两个结点的前驱线索和后继线索为空指针。

3.对N(≥2)个权值均不相同的字符构造哈夫曼树,则树中任一非叶结点的权值一定不小于下一层任一结点的权值。

【答案】正确
【解析】树中任意节点的权值一定大于自己的左右孩子,但不能保证一定不小于其他下一任结点的权值。

4.哈夫曼编码是一种最优的前缀码。对一个给定的字符集及其字符频率,其哈夫曼编码不一定是唯一的,但是每个字符的哈夫曼码的长度一定是唯一的。

【答案】错误
【解析】哈夫曼树的形状不是唯一的,对于两个权值最小的结点,不区分左右;对于相同权值的结点,并入哈夫曼树的时间可能不同

5.对于一个有N个结点、K条边的森林,不能确定它共有几棵树。

【答案】错误
【解析】对于每一棵树来说,除去根结点,每一个结点上面都有一条边,因此边数e=n-1
则TotalEdgeNum=TotalNodeNum-TreeNum = N - K 

6.树的后根序遍历序列等同于它所对应二叉树的中序遍历序列。

【答案】正确
【解析】一棵树的后序遍历和这棵树对应的二叉树的中序遍历相同 以及 高效的二叉树~_敲代码的小提琴手的博客-CSDN博客_树的后序遍历与其对应的二叉树的后序遍历序列相同

7.二叉树可以用二叉链表存储,树无法用二叉链表存储。

 【答案】错误
【解析】树可以转化为二叉树

8.将一棵树转成二叉树,根结点没有左子树。

【答案】错误
【解析】树转化为二叉树采用二叉链表,"左孩子,右兄弟",根节点没有兄弟,所以转换后的根节点没有右孩子

9.用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关。

【答案】正确
【解析】邻接矩阵法的存储大小为n^2,只与顶点数有关,与边无关

10.用一维数组G[]存储有4个顶点的无向图如下:

G[] = { 0, 1, 0, 1, 1, 0, 0, 0, 1, 0 }

则顶点2和顶点0之间是有边的。

 【答案】正确
【解析】

0
1 0
1 1 0
0 0 1 0

g[2][0] = 1  有边 

选择

1.下列线索二叉树中(用虚线表示线索),符合后序线索树定义的是:

选B(左下角这个,别看错)

后序要求左右根,B符合

 叶节点,还是右子节点,遍历完它肯定该根节点了

哈夫曼树的特点性质:(节点为的度数为0 表示 n0,以此类推)
①哈夫曼树中只存在度为2和度为0的节点,及n1=0。
②哈夫曼树中,度为0和度为2的节点关系:n2=n0-1

由以上两个性质,本题就很好解出答案:
n0+n2=115 
n0+n0-1=115 
n0=(115+1)/2=58

 

 根据森林转换为二叉树的法则,二叉树的根结点通常是第一棵树的结点,二叉树的左子树是由第一棵树删去根后所得所有子树构成的,二叉树的右子树是由其它树(第二,第三棵树)构成的,故左子树结点个数是M1-1,右子树上的结点个数是M2+M3。

每个二叉树 : 叶子节点数 = 度为2的节点数 + 1

    全加起来: N                 = M       +   二叉树个数

所以二叉树个数 = N   -    M

一条边对应一个子节点,剩下的点都是根节点,共有10个

 

 V2没有直接到V3的边

这个带权弄得毫无意义

 

 

 

 

相关文章:

  • 【华为上机真题 2022】流水线
  • Linux 将 /home 目录与 / 根目录磁盘合并
  • Docker数据卷自定义Docker镜像
  • 什么是多态?java 中实现多态的机制是什么?
  • Allegro如何使用快捷键快速切换层面操作指导
  • Qt-FFmpeg开发-音频解码为PCM文件(9)
  • JAVA毕业设计教工公寓管理计算机源码+lw文档+系统+调试部署+数据库
  • JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK9特性讲解】
  • 详解设计模式:访问者模式
  • Android -- 每日一问:你在Android开发中遇到的技术难题是什么,你是怎么解决的?
  • 思科防火墙NAT——实验
  • 基于非局部滤波图像去噪方法
  • Linux json-c使用
  • 实验7 数据库编程
  • 网络安全这玩意儿真不建议一般人学...
  • C++11: atomic 头文件
  • CentOS从零开始部署Nodejs项目
  • CSS相对定位
  • Javascript编码规范
  • js ES6 求数组的交集,并集,还有差集
  • Python学习之路16-使用API
  • QQ浏览器x5内核的兼容性问题
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SpringBoot几种定时任务的实现方式
  • 从零搭建Koa2 Server
  • 分享几个不错的工具
  • 基于遗传算法的优化问题求解
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 全栈开发——Linux
  • 如何学习JavaEE,项目又该如何做?
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 算法-图和图算法
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 为什么要用IPython/Jupyter?
  • 一起参Ember.js讨论、问答社区。
  • 原生Ajax
  • elasticsearch-head插件安装
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #### go map 底层结构 ####
  • #QT(串口助手-界面)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (八十八)VFL语言初步 - 实现布局
  • (第61天)多租户架构(CDB/PDB)
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)ABI是什么
  • (转)Linq学习笔记
  • .bat批处理(五):遍历指定目录下资源文件并更新