数据结构练习题之树和图(附答案与解析)
树
(1)把一棵树转换为二叉树后,这棵二叉树的形态是( )。
A.唯一的 B.有多种
C.有多种,但根结点都没有左孩子 D.有多种,但根结点都没有右孩子
答案:A
解释:因为二叉树有左孩子、右孩子之分,故一棵树转换为二叉树后,这棵二叉树的形态是唯一的。
(2)由3个结点可以构造出多少种不同的二叉树?( )
A.2 B.3 C.4 D.5
答案:D
解释:五种情况如下:
(3)一棵完全二叉树上有1001个结点,其中叶子结点的个数是( )。
A.250 B. 500 C.254 D.501
答案:D
解释:设度为0结点(叶子结点)个数为A,度为1的结点个数为B,度为2的结点个数为C,有A=C+1,A+B+C=1001,可得2C+B=1000,由完全二叉树的性质可得B=0或1,又因为C为整数,所以B=0,C=500,A=501,即有501个叶子结点。
(4)一个具有1025个结点的二叉树的高h为( )。
A.11 B.10 C.11至1025之间 D.10至1024之间
答案:C
解释:若每层仅有一个结点,则树高h为1025;且其最小树高为 ëlog21025û + 1=11,即h在11至1025之间。
(5)深度为h的满m叉树的第k层有( )个结点。(1=<k=<h)
A.mk-1 B.mk-1 C.mh-1 D.mh-1
答案:A
解释:深度为h的满m叉树共有mh-1个结点,第k层有mk-1个结点。
(6)利用二叉链表存储树,则根结点的右指针是( )。
A.指向最左孩子 B.指向最右孩子 C.空 D.非空
答案:C
解释:利用二叉链表存储树时,右指针指向兄弟结点,因为根节点没有兄弟结点,故根节点的右指针指向空。
(7)对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,可采用( )遍历实现编号。
A.先序 B. 中序 C. 后序 D. 从根开始按层次遍历
答案:C
解释:根据题意可知按照先左孩子、再右孩子、最后双亲结点的顺序遍历二叉树,即后序遍历二叉树。
(8)若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用( )遍历方法最合适。
A.前序 B.中序 C.后序 D.按层次
答案:C
解释:后续遍历和层次遍历均可实现左右子树的交换,不过层次遍历的实现消耗比后续大,后序遍历方法最合适。
(9)在下列存储形式中,( )不是树的存储形式?
A.双亲表示法 B.孩子链表表示法 C.孩子兄弟表示法 D.顺序存储表示法
答案:D
解释:树的存储结构有三种:双亲表示法、孩子表示法、孩子兄弟表示法,其中孩子兄弟表示法是常用的表示法,任意一棵树都能通过孩子兄弟表示法转换为二叉树进行存储。
(10)一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足( )。
A.所有的结点均无左孩子 B.所有的结点均无右孩子
C.只有一个叶子结点 D.是任意一棵二叉树
答案:C
解释:因为先序遍历结果是“中左右”,后序遍历结果是“左右中”,当没有左子树时,就是“中右”和“右中”;当没有右子树时,就是“中左”和“左中”。则所有的结点均无左孩子或所有的结点均无右孩子均可,所以A、B不能选,又所有的结点均无左孩子与所有的结点均无右孩子时,均只有一个叶子结点,故选C。
(11)设哈夫曼树中有199个结点,则该哈夫曼树中有( )个叶子结点。
A.99 B.100
C.101 D.102
答案:B
解释:在哈夫曼树中没有度为1的结点,只有度为0(叶子结点)和度为2的结点。设叶子结点的个数为n0,度为2的结点的个数为n2,由二叉树的性质n0=n2+1,则总结点数n= n0+n2=2*n0-1,得到n0=100。
(12)若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则X的前驱为( )。
A.X的双亲 B.X的右子树中最左的结点
C.X的左子树中最右结点 D.X的左子树中最右叶结点
答案:C
(13)引入二叉线索树的目的是( )。
A.加快查找结点的前驱或后继的速度 B.为了能在二叉树中方便的进行插入与删除
C.为了能方便的找到双亲 D.使二叉树的遍历结果唯一
答案:A
(14)设F是一个森林,B是由F变换得的二叉树。若F中有n个非终端结点,则B中右指针域为空的结点有( )个。
A.n−1 B.n C.n + 1 D.n + 2
答案:C
(15)n(n≥2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是( )。
A.该树一定是一棵完全二叉树
B.树中一定没有度为1的结点
C.树中两个权值最小的结点一定是兄弟结点
D.树中任一非叶结点的权值一定不小于下一层任一结点的权值
答案:A
解释:哈夫曼树的构造过程是每次都选取权值最小的树作为左右子树构造一棵新的二叉树,所以树中一定没有度为1的结点、两个权值最小的结点一定是兄弟结点、任一非叶结点的权值一定不小于下一层任一结点的权值。
图
(1)在一个图中,所有顶点的度数之和等于图的边数的( )倍。
A.1/2 B.1 C.2 D.4
答案:C
(2)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。
A.1/2 B.1 C.2 D.4
答案:B
解释:有向图所有顶点入度之和等于所有顶点出度之和。
(3)具有n个顶点的有向图最多有( )条边。
A.n B.n(n-1) C.n(n+1) D.n2
答案:B
解释:有向图的边有方向之分,即为从n个顶点中选取2个顶点有序排列,结果为n(n-1)。
(4)n个顶点的连通图用邻接距阵表示时,该距阵至少有( )个非零元素。
A.n B.2(n-1) C.n/2 D.n2
答案:B
(5)G是一个非连通无向图,共有28条边,则该图至少有( )个顶点。
A.7 B.8 C.9 D.10
答案:C
解释:8个顶点的无向图最多有8*7/2=28条边,再添加一个点即构成非连通无向图,故至少有9个顶点。
(6)若从无向图的任意一个顶点出发进行一次深度优先搜索可以访问图中所有的顶点,则该图一定是( )图。
A.非连通 B.连通 C.强连通 D.有向
答案:B
解释:即从该无向图任意一个顶点出发有到各个顶点的路径,所以该无向图是连通图。
(7)下面( )算法适合构造一个稠密图G的最小生成树。
A. Prim算法 B.Kruskal算法 C.Floyd算法 D.Dijkstra算法
答案:A
解释:Prim算法适合构造一个稠密图G的最小生成树,Kruskal算法适合构造一个稀疏图G的最小生成树。
(8)用邻接表表示图进行广度优先遍历时,通常借助( )来实现算法。
A.栈 B. 队列 C. 树 D.图
答案:B
解释:广度优先遍历通常借助队列来实现算法,深度优先遍历通常借助栈来实现算法。
(9)用邻接表表示图进行深度优先遍历时,通常借助( )来实现算法。
A.栈 B. 队列 C. 树 D.图
答案:A
解释:广度优先遍历通常借助队列来实现算法,深度优先遍历通常借助栈来实现算法。
(10)深度优先遍历类似于二叉树的( )。
A.先序遍历 B.中序遍历 C.后序遍历 D.层次遍历
答案:A
(11)广度优先遍历类似于二叉树的( )。
A.先序遍历 B.中序遍历 C.后序遍历 D.层次遍历
答案:D
(12)图的BFS生成树的树高比DFS生成树的树高( )。
A.小 B.相等 C.小或相等 D.大或相等
答案:C
解释:对于一些特殊的图,比如只有一个顶点的图,其BFS生成树的树高和DFS生成树的树高相等。一般的图,根据图的BFS生成树和DFS树的算法思想,BFS生成树的树高比DFS生成树的树高小。
(13)已知图的邻接矩阵如图6.30所示,则从顶点v0出发按深度优先遍历的结果是( )。
图6.30 邻接矩阵
已知图的邻接表如图6.31所示,则从顶点v0出发按广度优先遍历的结果是( ),按深度优先遍历的结果是( )。
答案:D、D
(15)下面( )方法可以判断出一个有向图是否有环。
A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径
答案:B
数据结构练习题之树和图(附答案与解析)相关推荐
- python中plotly绘制树地图_聚类分析python画树状图--Plotly(dendrogram)用法解析 - 人人都是架构师...
1.前言 聚类分析是机器学习和数据分析中非常常见的分类方法, 当我们用到层次聚类(系统聚类)时,最常用的分析方法就是绘制树状图, 比较常见的统计软件像SPSS.SAS.R等都可以直接绘制树状图,比较简 ...
- 闻一以知十,前端要会的10道面试题(附答案与解析)
一.先言: 目标: 成为offer收割机的兄弟offer拖拉机 范围: HTML.CSS.JavaScript 题型: 单选.多选.不定项选择 数目: 10 本次难度(2星): ⭐⭐⛤⛤⛤ 答案与解析 ...
- Python数据结构学习笔记——树和图
目录 一.树的概念 二.二叉树的实现 (一)列表的列表 (二)结点与引用 三.图的概念 四.图的实现 (一)邻接矩阵 (二)邻接表 一.树的概念 树是一种数据结构,树由结点及连接结点的边组成,每个树有 ...
- 【数据结构-树图】树和图的性质
[注意]不要死记结论,理解推导过程及其背后的思路更重要! 文章目录 1 树的性质 1.1 非平凡树的性质 1.2 非空二叉树的性质 1.3 完全二叉树的性质 1.4 森林的性质 1.5 树.二叉树.森 ...
- PMP_强化练习题(二)(3A通过分享)(180题附答案及解析)
单选题 (每题1分,共180道题) 1. [单选] 在项目的规划阶段,所需的外部和内部资源会发生冲突,若要解决这个问题,项目经理应该做什么? During a projects planning ph ...
- 操作系统课后练习题(期末复习题目附答案)
1.shmget()的功能 A.创建一个消息度量 B.创建一个共享存储区 C.创建一个管道 D.创建一个进程 正确答案:B 2.msgget()的描述正确的 A.第二参数可以忽略 B.第三个 ...
- 数据库系统原理课后练习题(期末复习题目附答案)
大家可以将这些题目作为期末复习题目或者课后资料. 此为第一章绪论部分 判断题 1.信息能够消除某种不确定性. √ 2.数据库中的数据冗余度高. × 3.数据库的三级模式结构能够提高系统的安全性. √ ...
- PMP_敏捷专项练习题 (3A通过分享)(共94道题附答案及解析)
单选题 (每题1分,共94道题) 1. [单选] 你正在与产品负责人一起确定可行的产品迭代计划. 当你讨论各种特性并确定它们的优先级时,你们都在努力理解哪些特性应该具有更高的优先级. 项目经理和产品负 ...
- Shell 练习题 31-40题,内附答案
31-40题 31.写一个交互脚本,直接运行脚本,出现提示,选择一个数字:1:重启 httpd 服务,2:重启 mysqld 服务 3:重启vsftpd服务,加选项--httpd重启 httpd 服务 ...
最新文章
- Python3实现ICMP远控后门(上)
- vue入门基础篇笔记1
- 《Adobe After Effects CS6中文版经典教程》——1.3 创建合成图像与组织图层
- uC/OS-II源码分析(总体思路 三)
- UR5 IK group中遇到的问题
- Flink : Flink JobManager报错 akka.pattern.AskTimeoutException: Ask timed out on
- 微软开始测试自己的Google Base
- Ajax实现动态的二级级联菜单
- matlab算法之二分法
- [转载]下载网页中的ts视频文件
- Java开发的文字RPG游戏,代码开源
- CentOS7下宽带连接
- VMware Workstation 无法连接到虚拟机.....
- 流水线计算公式及吞吐量
- NFT Insider #92:NBA球星拉梅洛·鲍尔入驻The Sandbox元宇宙,蓝精灵协会宣布与著名艺术家展开一系列合作
- 苹果手机热点总断怎么解决?
- 动态设置html样式或style具体属性
- ENVI背景值nodata或NAN解决方法/ArcGIS栅格影像背景颜色去除
- php商品在最少购买,ecshop每个商品添加最少购买量最小订购量
- keras如何获取中间层的输出
热门文章
- java classifier_Java 朴素贝叶斯分类器、SVM(5行代码)实现乳腺癌分类
- kernel开启启动log_MySql启动数据库设置初始密码
- 闪退mac_幕布闪退怎么办?别着急看这里
- css中的xpath,使用XPath选择CSS类
- 虚拟服务器(dmz),dmz虚拟主机(dmz主机和虚拟服务器区别)
- python获取他人的ip_Python获取指定网段正在使用的IP
- labview列表框禁用鼠标单击_【跟我学LabVIEW】什么是局部变量?如何创建及使用局部变量?...
- 鸿蒙渊之后是什么任务,都说这次主线好,那我来唱唱反调吧
- and型变量哲学家问题C语言,利用AND型信号量解决哲学家进餐问题,要windows下的C/C++的完整源代码程序。(五个哲学家五只筷子)...
- 怎么看mysql的最大连接数_怎么查看和修改 MySQL 的最大连接数?