【牛客选择题】树&&二叉树【一】

目录

1.下列关于二叉树的叙述中,正确的是(B)。

A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍

解析:
设结点总数为n,度为0的叶节点为n0,度为1的节点为n1,度为2的结点为n2。
结点总数n=n0+n1+n2 。 ---------(1)
因为,结点,除了根结点之外,其他都是子节点。所以结点总数=根节点+子节点 。而子节点的总数等于度为1对应的子节点+度为2对应的子结点。
所以,结点总数n=1+n1+2n2 ------------(2)
由(1)(2) 得 n0= n2+1 ,故度为0的叶节点的个数等于度为2的结点数+1。

2.哈夫曼树中没有度数为 1 的结点。(√)

解析:
创建哈夫曼树是从底层往上匹配建树,所以每个节点度为2或者度为0(叶节点)

3.在一棵二叉树中有30个叶子结点,仅有一个孩子的结点有20个,则该二叉树共有(A) 个结点。

A.79
B.76
C.56
D.81

解析:
设:n0为叶子结点,n1为度为1的结点,n2为度为2的结点,n为总结点;则:n=n0+n1+n2.
已知n0=30,n1=20。又因为二叉树中度为2的结点数目=叶子结点数目-1,所以n2=n0-1=29。所以n=30+20+29=79,故二叉树共有79个节点。

4.一个二叉树的前序遍历:abdefgc中序遍历:debgfac,后序遍历为(A)

A.edgfbca
B.egdfbca
C.cgefdba
D.cegdfba

解析:
由前序遍历确定根节点a,再由中序遍历确定a的左右子树。
在这里插入图片描述

5.下列关于m阶的B-树的论述不正确的是(D)。

A.B-树是一种平衡的多路查找树
B.树中每个结点至多有m棵子树
C.若根结点不是叶子结点,则至少有两棵子树
D.B-树中的叶子结点可出现在不同层次上

解析:
看下方链接,漫画形式,很清晰。
https://www.sohu.com/a/154640931_478315

6.二叉树中每个结点有两棵非空子树或有两棵空子树(×)。

解析:
二叉树中每个结点有:①两棵非空子树;②两棵空子树;③一棵子树。上题适合满二叉树。

7.以下的 4 棵二叉树中,(3) 不是完全二叉树。

在这里插入图片描述

解析:
完全二叉树的定义:对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。

8.设非空二叉树的所有子树中,其左子树上的结点值均小于根结点值,而右子树上的结点值均不小于根结点值,则称该二叉树为排序二叉树。对排序二叉树的遍历结果为有序序列的是(A)。

A.中序序列
B.前序序列
C.后序序列
D.前序序列或后序序列

解析:
二叉排序树特点是左子树的值小于根节点的值,右子树的值大于根节点的值,通过中序遍历,先访问左子树,再访问根节点,最后访问右子树,这样输出序列为排序好的升序序列。
如下图的排序树:
在这里插入图片描述

9.一个二叉树有N个度为2的节点,求叶节点的数目为(C)

A.N-1
B.N
C.N+1
D.N+2

解析:
n个结点的二叉树,度只可能是0,1,2,分别设其对应的结点个数为n0,n1,n2,则有n=n0+n1+n2;又n结点的树只有n-1条边,故n-1=n1+2*n2
两式联合起来,可等到等式n0=n2+1。

10.判断下列说法是否正确:利用5,7,2,3,6,8, 9这几个值作为叶子结点的权,生成-棵哈夫曼树,该树的带权路径长度为123.(×)

解析:
在这里插入图片描述

11.一棵有12个节点的完全二叉树,其深度是(A)

A.4
B.5
C.3
D.6

解析:
因为 完全二叉树结点数 <= 同深度的满二叉树;其次,深度为N的满二叉树结点为:2 N -1。又因为7<12<15,所以完全二叉树深度只能是4。

12.在按层次遍历二叉树的算法中,需要借助的数据结构是( A)。

A.队列
B.栈
C.线性表
D.有序表

解析:
在按层次遍历二叉树的算法中,需要借助的辅助数据结构是队列。
二叉树的先序、中序、后序遍历的非递归实现需要借助栈这一数据结构实现。

13.某二叉树T有n个结点,设按某种顺序对T中的每个结点进行编号,编号为1,2,…,n,且有如下性质:T中任一结点V,其编号等于左子树上的最小编号减1,而V的右子树的结点中,其最小编号等于V左子树上结点的最大编号加1。这时是按(B)编号的。

A.中序遍历序列
B.前序遍历序列
C.后序遍历序列
D.层次顺序

解析:
左孩子若为x,则父节点为x-1,右孩子为x+1,按照顺序则:父左右,即根左右的顺序即为前序遍历

14.二叉树的后序排列DBEFCA,中序排列DBAECF,那么对其做先序线索化二叉树,节点E的线索化指向节点(D)。

A.BC
B.AC
C.DF
D.CF

解析:
在这里插入图片描述

15.集合中任何两个元素都可以比较大小,但比较不满足传递性,则以下说法正确的有(D)

A.可以通过建立二叉搜索树索引使得在集合中查找元素的时间复杂度降到O(logN)
B.可以进行快排,排序后使用二分查找可以使得在集合中查找元素的时间复杂度降到O(logN)
C.可以通过B树索引使得在集合中查找元素的时间复杂度降到O(logN)
D.可以通过hash索引使得在集合中查找元素的时间复杂度降到O(1)

解析:
排除法,ABC都需要比较大小的传递性,否则无法实现,而哈希所以可以认为是单纯的数值计算,并没有大小比较操作,故选D。

16.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(C)。

A.9
B.10
C.11
D.12

解析:
最小高度自然就是等于2000个结点的完全二叉树的高度。设根结点高度为1,n个结点完全二叉树高度:下取整(log2n) + 1。现在是下取整(log2(2000)) + 1= 11

17.给定二叉树的两种遍历序列,分别是:前序遍历序列:D,A,C,E,B,H,F,G,I; 中序遍历序列:D,C,B,E,H,A,G,I,F 那么后续遍历为:(B)。

A.B,E,H,C,I,G,F,A,D
B.B,H,E,C,I,G,F,A,D
C.B,H,E,C,I,G,A,F,D
D.B,H,E,C,G,I,F,A,D

解析:
在这里插入图片描述

18.下列选项给出的是从根分别到达两个叶结点路径上的权值序列,能属于同一棵哈夫曼树的是 (D) 。

A.24,10,5 和 24,10,7
B.24,10,5 和 24,12,7
C.24,10,10 和 24,14,11
D.24,10,5 和 24,14,6

解析:
在哈夫曼树中,左右孩子权值之和为父结点权值。第一个都是 24 ,说明 24 是根, 24 是由子节点之和组成,排除 AB。子节点不能比父节点大或者相等(子节点之和为父节点值),所以排除 C。选D

19.一颗二叉树的前序遍历是ABCDFGHE,后序遍历是BGHFDECA,中序遍历是(C)

A.GHBADFCE
B.DGBAFHEC
C.BADGFHCE
D.BAGDFHEC

解析:
在这里插入图片描述

20.在二叉排序树上查找关键则为35的节点,则依次比较关键字有可能是( A )

A.{46,36,18,28,35}
B.{18,36,28,46,35}
C.{46,28,18,36,35}
D.{28,36,18,46,35}

解析:
B:{18,36,28,46,35}
1、 一开始查找范围(-∞,+∞)
2、 遇到18,由于18<35更新查找范围为(18,+∞),范围减小
3、 遇到36,由于35<36更新查找范围为(18,36),范围减小
4、 遇到28,由于28<35更新查找范围为(28,36),范围减小
5、 遇到46,由于35<46更新查找范围为(28,46),范围增大,不合理。或者,46不在(28, 36)之间,因此不可能出现46.
C:{46,28,18,36,35}
1、 一开始查找范围(-∞,+∞)
2、 遇到46,由于46>35更新查找范围为(-∞,46),范围减小
3、 遇到28,由于28<35更新查找范围为(28,46),范围减小
2、 遇到18,由于18<35更新查找范围为(18,46),范围增大,不合理。或者,18不在(28, 46)之间,因此不可能出现18.
D:{28,36,18,46,35}
1、 一开始查找范围(-∞,+∞)
2、 遇到28,由于28<35更新查找范围为(28,+∞),范围减小
3、 遇到36,由于35<36更新查找范围为(28,36),范围减小
2、 遇到18,由于18<35更新查找范围为(18,36),范围增大,不合理。
或者,18不在(28, 36)之间,因此不可能出现18.
综上选A

21.在具有 2n 个结点的完全二叉树中,叶子结点个数为(A)。

A.n
B.n+1
C.n-1
D.n/2

解析:
完全二叉树中,有n2 = n0 - 1;再根据题设条件,得n0 + n1 + n2 = 2n;则可得:2n0 + n1 - 1 = 2n;完全二叉树中,n1只能为0或1,由于2n为偶数,故n1 = 1;因此,n0 = n。

22.图的BFS生成树的树高比DFS生成树的树高(A)

A.小或相等
B.小
C.大或相等
D.大

解析:
BFS是广度优先遍历,DFS是深度优先遍历。对于一些特殊的图,比如只有一个顶点的图,其BFS生成树的树高和DFS生成树的树高相等。一般的图,根据图的BFS生成树和DFS树的算法思想,BFS生成树的树高比DFS生成树的树高小

23.以下说法正确的是(C)。

A.若有一个结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点。
B.若有一个结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。
C.若有一个页子结点是二叉树中某个子树的中序遍历结果序列的最后一个结点,则它一定是该子树的前序遍历结果序列的最后一个结点。
D.若有一个页子结点是二叉树中某个子树的前序遍历结果序列的最后一个结点,则它一定是该子树的中序遍历结果序列的最后一个结点。

解析:
中序遍历的顺序是左根右,前序遍历的顺序是根左右,因此要保证最后一个节点相同的话,也就是要保证存在右子树,若中序遍历的最后一个结点是叶子节点的话说明根结点一定存在右子树。而前序遍历的最后一个是叶子结点的话不能保证根节点有右子树。(该叶子结点可能是根结点左子树的)。因此C对。
在这里插入图片描述

24.要使一棵非空二叉树的先序序列与中序序列相同,其所有非叶结点须满足的条件是 (B)。

A.只有左子树
B.只有右子树
C.结点的度均为1
D.结点的度均为2

解析:
先序序列是先父结点,接着左子树,然后右子树。中序序列是先左子树,接着父结点,然后右子树,递归进行。如果所有非叶结点只有右子树,先序序列和中序序列都是先父结点,然后右子树,递归进行,因此B正确。

25.某二叉树,其度为n1,度为2的节点数为n2,且先序遍历和后序遍历序列正好相反,则此二叉树的深度为(C)

A.2n1+n2+1
B.n1+n2
C.n1+2
n2+1
D.2*n1+n2

解析:
先序遍历是M-L-R,后序遍历顺序是:L-R-M,所以只有中间节点顺序变化了,左右节点位置不变,因此这个树的高度一定等于其节点数,总结点数为N1 + 2N2 + 1。

26.对n(n≥2)个权值均不相同的字符构成哈夫曼树, 下列 关于该 哈弗曼 树的叙述中,错误的是(A)

A.该树一定是一棵完全二叉树
B.树中一定没有度为1的结点
C.树中两个权值最小的结点一定是兄弟结点
D.树中任一非叶结点的权值一定不小于下一层任一结点的权值

解析:
A.哈夫曼树也叫最右二叉树和带权路径最小树,是一颗二叉树,但并不一定是完全的二叉树。
B.结点的孩子个数称为结点的度,哈夫曼树中只有度为2的结点和度为0的叶子结点。
C.哈夫曼树的构造是从底到上,从小到大,所以最小权值的两个结点一定用于底部,是兄弟结点。
D.根据哈弗曼树的定义,一棵二叉树要使其WPL值最小,必须使权值越大的叶子结点越靠近根结点,而权值越小的叶子结点越远离根结点,任一非叶子结点的权值是等于其自己孩子结点权值之和,大于或等于下一层的任一结点的权值。

27.在树的存储中,若使每个结点带有指向双亲结点的指针,这为在算法中寻找双亲结点带来方便。(√)
28.一个无序的元素序列可以通过构造一棵二叉排序树而变成一个有序的元素序列,这种说法(√)
29.若二叉树用二叉链表作存贮结构,则在 n 个结点的二叉树链表中只有 n—1 个非空指针域(√)。

解析:
N个节点的二叉树,若用二叉链表表示 则每个节点都有两个链域 也就是2N个 ,然后除了根节点外 每个节点都能但只能被指一次,所以有N-1个链域不为空 因而 有N+1个链域为空。

30.深度为k的二叉树中结点总数小于等于2k -1(√)

解析:
第1层节点数为2^0
第2层节点数为2^1
第3层节点数为2^2
第4层节点数为2^3
……
第k层节点数为2^(k-1)
所以满二叉树的总节点数为20+21……+2(k-1)=2(k)-1
在这里插入图片描述
可知,所有深度为k的二叉树的节点数都小于等于深度为k的满二叉树的节点数。所以所有深度为k的二叉树的节点数都小于等于2^(k)-1

31.由3个结点可以构造出多少种不同的二叉树 (D)

A.2
B.3
C.4
D.5

解析:
(1)满树;(2)单子树根左左;(3)单子树根右左;(4)单子树根左右;(5)单子树根右右;
在这里插入图片描述

32.某二叉树的先序序列和后序序列正好相反,则该二叉树一定是(B)

A.空或只有一个结点
B.高度等于其结点数
C.任一结点无左孩子
D.任一结点无右孩子

解析:由于先序遍历是“根―左子树―右子树”,而后序遍历是“左子树―右子树―根”,若某二叉树的先序和后序序列正好相反,则该二叉树每层左、右子树只能有1个,即则该二叉树一定是高度等于其结点数。

33.完全二叉树中,若一个结点没有左孩子,则它必是树叶(√)

解析:
完全二叉树的特点是:
1)只允许最后一层有空缺结点且空缺在右边,即叶子结点只能在层次最大的两层上出现;
2)对任一结点,如果其右子树的深度为j,则其左子树的深度必为j或j+1。 即度为1的点只有1个或0个。如果根节点没有左子树,对于完全二叉树,也不会有右子树,就是一个只有一个顶点的二叉树,也是叶子节点

34.一棵平衡二叉树一定是一棵(B)。

A.完全二叉树
B.二叉排序树
C.堆
D.哈夫曼树

解析:
在构成二叉排序树的过程中进行“平衡化”处理,成为二叉平衡树。

35.n个结点的线索二叉树上含有的线索数为 (B)。

A.2n
B.n+l
C.n-l

解析:
无论是什么样的二叉链表,空线索数由度为1和度为0的节点所提供,其中一个度为1的节点提供1个空线索数,一个度为0的节点提供2个空线索数,即总的空线索数为2n0+n1,又因为n0=n2+1,所以2n0+n1=n0+n1+n2+1=n+1。

36.在含有n个结点的树中,边数只能是n-1条(√)

解析:
树中是不存在环的,对于有N个节点的树,必定是N-1条边 。

37.树与二叉树是两种不同的树形结构(√)

解析:
二叉树与树是不同的,二叉树不等价于分支树最多为二的有序树。当一个结点只包含一个子节点时,对于有序树并无左右孩子之分,而对于二叉树来说依然有左右孩子之分,所以二叉树与树是两种不同的结构。

38.在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶结点个数是(B)。

A.41
B.82
C.113
D.122

解析:
设N为总的节点数:
总的度=20 * 4+10 * 3+1 * 2+10 * 1=122=N-1,所以N=123.
而N又=20+10+1+10+n(n为度为0的点,即叶子)即n=82。

39.一棵二叉树高度为h(根的高度为1),所有结点的度或为0或为2,则这棵二叉树最少有多少个结点?(C)

A.2h
B.2h+1
C.2h-1
D.h+1

解析:
在这里插入图片描述

40.在二叉排序树中插入一个结点最坏情况下的时间复杂度为(B)。

A.O(1)
B.O(n)
C.O(log2n)
D.O(n^2)

解析:
最坏的情况就是一直往一侧插入,形似单链表,这样的话就需要逐个去比较进行插入,所以时间复杂的为O(n)。

41.如果一个二叉树的前序遍历结果是abcdefg,下面哪一个是可能的中序遍历结果?(A B C E)

A.abcdefg
B.gfedcba
C.bcdefga
D.bceadfg
E.bcdaefg

解析:
设abcdefg为进栈的顺序,符合出栈顺序的则可能是中序遍历的结果在这里插入图片描述

42.有关树的说法正确的是(A C)

A.树中所有结点可以有0个或多个后继结点
B.二叉树中至少有一个结点的度为 2
C.在AVL树中根节点的左右子树的深度最多相差1
D.Huffman树一定是AVL树

解析:
B.单支二叉树节点的度不为2
D.哈夫曼树只是一棵最优二叉树,不一定是完全二叉树,也不一定是平衡二叉树哈夫曼树不关注树的结构,只关注带权路径长度。

43.一棵树(>=3个节点)最少需要删掉几个节点才能使得这棵树不连通?(B)

A.0
B.1
C.2
D.3

解析:
对了结点>=3的树,随便删掉一个非叶结点就可以使得这棵树不连通。

44.一个二叉树的先序遍历结果和中序遍历结果相同,则其所有非叶子节点必须满足的条件是?(B)

A.只有左子树
B.只有右子树
C.节点的度为1
D.节点的度为2

解析:
先序:根左右;中序:左根右。先序和中序序列一致,那么二叉树满足没左子树,只有右子树。

45.若某完全二叉树的深度为h,则该完全二叉树中至少有(2^(k-1))个结点。

解析:
题目说完全二叉树至少有几个节点,最少的情况是:前h-1层是满二叉树,最后一层只有一个左子树,所以按照公式:深度为h-1的满二叉树的结点数有2(h-1)-1,那么h层的完全二叉树至少就有h-1层的满二叉树的结点数+一颗左子树,所以最后算的:2(h-1)。

46.关于数据结构,下面叙述中正确的是(B D)

A.直接选择排序是一种稳定的排序方法
B.哈弗曼树带权路径长度最短的树,路径上权值较大的结点离根较近
C.拓扑排序是指结点值得有序排序
D.当从一个最小堆中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整到合适位置

解析:
不稳定的排序:快速排序,希尔排序,选择排序,堆排序。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值