数据结构:面试题-树-试题

1、设某二叉树的先序遍历序列为 ABDGCEFH,中序遍历序列为 DGBAECHF,则其后序遍历 序列是( )
正确答案: C 你的答案: 空 (错误)
GDBEFHCA
GDEFHBCA
GDBEHFCA
GBDEFCHA

2、某二叉树结点的中序序列为BDAECF,后序序列为DBEFCA,则该二叉树对应的森林包括()棵树
正确答案: C 你的答案: 空 (错误)
1
2
3
4
解析:
在这里插入图片描述

3、一棵平衡二叉树一定是一棵()。

正确答案: B 你的答案: 空 (错误)
完全二叉树
二叉排序树

哈夫曼树

4、题目来源于王道论坛

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

正确答案: B 你的答案: 空 (错误)
41
82
113
122
解析:设树中度为i(i=0,1,2,3,4)的结点数分别为Ni,树中结点总数为N,则树中各结点的度之和等于N-1,即N=1+N1+2N2+3N3+4N4=N0+N1+N2+N3+N4,根据题设中的数据,即可得到N0=82,即树T的叶结点的个数是82。
设N为总的节点数,
总的入度=204+103+12+101=122=N-1,所以N=123.
而N又=20+10+1+10+n(n为度为0的点,即叶子)即n=82。

5、具有10个叶结点的二叉树中,有9个度为2的结点()
正确答案: A 你的答案: 空 (错误)

6、如果一颗二叉树节点的前序序列是ABC,后序序列式CBA,则二叉树节点的中序序列式
正确答案: D 你的答案: 空 (错误)
ABC
ACB
BCA
不确定
解析:在这里插入图片描述

6、完全二叉树共有700结点,该二叉树有多少个叶子结点?
正确答案: B 你的答案: 空 (错误)
349
350
351
352
353

解析:先假设其为满二叉树,有10层,满二叉树中,第九层为256各节点,第十层为512个节点,满二叉树总结点数为1023,完全二叉树为700个节点,不满的节点数为323个不满最后一层,512-323=189个,最后一层有189个叶子结点,189个叶子结点占用第九层父节点95个还剩下256-95=161个叶子结点,所以总的叶子节点为 161+189=350个。

7、设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是()
正确答案: A 你的答案: 空 (错误)
m-n
m-n-1
n+1
条件不足,无法确定
解析:在这里插入图片描述
根据图中所解释,结合题意,右孩子节点数已知,那么所有节点数减去右剩下的就是第一颗二叉树。

8、在下列关于平衡二叉树的叙述中,不正确的是( )。

正确答案: A 你的答案: 空 (错误)
二叉树中所有结点的左右子树的深度之差小于等于1
二叉树中所有左右子树的深度之差的绝对值小于等于1
二叉树中每个节点的平衡因子={-1 ,0 ,1}
二叉树中度为0的叶节点比度数为2的结点多
解析:缺少绝对值。

9、一棵左右子树不空的二叉树在先序线索化后,其空指针域数为()。
正确答案: B 你的答案: 空 (错误)
0
1
2
不确定
解析:二叉树线索化后,先序线索化与后序线索化最多有1个空指针域,而中序线索化最多有2个空指针域

10、二叉树以后序遍历序列与前序遍历序列反映同样的信息(它们反映的信息不独立)()
正确答案: A 你的答案: 空 (错误)


解析:同时知道前序遍历和后序遍历的结果,不能推断出树的结构,原因是因为他们反映了同样的信息。
而同时知道前序/后序遍历和中序遍历的结果,却可以推出,是因为他们反映不同的信息。

11、求下面带权图的最小(代价)生成树时,可能是克鲁斯卡(Kruskal)算法第 2 次选中但不是普里姆(Prim)算法(从 V4 开始)第 2 次选中的边是 () 。
在这里插入图片描述

正确答案: C 你的答案: 空 (错误)
(V1,V3)
(V1,V4)
(V2,V3)
(V3,V4)
解析:Kruskal算法是按权值选边,若选边后不形成回路,则保留作为一条边,若形成回路则除去
Prim算法是每次从当前的二叉树节点向外延伸的,选择权值最小的边
克鲁斯卡(Kruskal)算法 和 普里姆(Prim)算法(从 V4 开始)第1次选中的边都是(v4,v1) 。Kruskal算法第二次可以选择(v1,v3), (v2,v3), (v3,v4); Prim算法第二次可以选择(v1,v3), (v3,v4)

12、由权值为9,2,7,5的四个叶子节点构造一棵哈夫曼树,该树的带权路径长度为:
正确答案: C 你的答案: 空 (错误)
23
37
44
27
解析:在这里插入图片描述

13、已知中序遍历的序列为abcdef,高度最小的可能的二叉树的叶子是( )
正确答案: A B C 你的答案: 空 (错误)
ace
acf
adf
cdf
解析:在这里插入图片描述

14、二叉树的前序遍历是:-+abcde/f,后序遍历是:badc+f/e-,则层序遍历和中序遍历依次为()

正确答案: A B 你的答案: 空 (错误)
-+eac/bfd、ab+dc-ef/
-+eac/bfd、ba+dc-ef/
-+eacf/bd、ab+dc-fe/
-+eacf/bd、ba+dc-fe/

15、下面二叉树中一定是完全二叉树的是
正确答案: C 你的答案: C (正确)
平衡二叉树
单支二叉树
满二叉树
二叉排序树
解析:满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
平衡二叉树一定是二叉排序树。

17、某系统总体结构如下图所示, 该系统结构图的深度是( )
在这里插入图片描述

正确答案: A 你的答案: A (正确)
4
3
2
1
解析:系统结构图的深度为节点的层数,也就是4.

18、对任意一棵树,设它有n个结点,这n个结点的度数之和为()
正确答案: C 你的答案: D (错误)
n
n-2
n-1
n+1

解析:度数也就是边的个数,度数之和也就是边的个数之和比节点之和少一个。自己画个图就懂了。

19、下列关于二叉树的叙述中,正确的是( )。

正确答案: B 你的答案: A (错误)
叶子结点总是比度为2的结点少一个
叶子结点总是比度为2的结点多一个
叶子结点数是度为2的结点数的两倍
度为2的结点数是度为1的结点数的两倍
解析:自己画个图就懂了。

20、非空的平衡二叉树中插入一个结点,原有结点中至少一个结点的平衡因子会改变()
正确答案: A 你的答案: A (正确)


解析:平衡因子=H左子树-H右子树,即使插入结点后不改变原二叉树的平衡性,平衡因子也会改变。

21、关于序列16 14 10 8 7 9 3 2 4 1的说法下面哪一个正确()
正确答案: A 你的答案: A (正确)
大顶堆
小顶堆
不是堆
二叉排序树

解析;自己画个图。在这里插入图片描述
22、堆肯定是一棵平衡二叉树()
正确答案: B 你的答案: B (正确)


解析:平衡二叉树的左右子树的高度之差的绝对值不能超过1,

23、在具有 2n 个结点的完全二叉树中,叶子结点个数为( )。
正确答案: A 你的答案: A (正确)
n
n+1
n-1
n/2
24、若 A=10 , B=4 , C=6 , D=4 , E=15 则后缀表达式“ AB*CD±E+ ”的值为 ( ) 。

正确答案: A 你的答案: C (错误)
45
31
53
65

解析:后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储:
遇到数字先进栈,遇到符号弹出两个数字,运算后再入栈,直到结束全部弹出~

25、若一颗二叉树具有10个度为2的节点,5个度为1的节点,度为0的节点个数为()
正确答案: B 你的答案: A (错误)
9
11
15
不确定
解析:1+n1+2n2=n0+n1+n2 (度之和加一等于节点之和),得到n0=26-15=11

26、从根开始按层次(第0层->第1层->第2层)遍历一颗二叉树,需要使用什么辅助数据结构?()
正确答案: B 你的答案: D (错误)
heap
queue
binary tree
stack

解析:广度优先算法用队列来辅助,深度优先算法用栈来辅助。
广度和深度如何进行计算
广度优先算法就是:一层一层往下遍历,注意一层一层;而深度优先算法是通过点,沿着点往深度往下进行遍历。

27、有权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为_______。
正确答案: B 你的答案: B (正确)
24
71
48
53

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

28、具有 60 个结点的二叉树,其叶子结点有 12 个,则度为 1 的结点数为( )
正确答案: D 你的答案: B (错误)
11
14
48
37

29、若一个结点是某二叉树的中序遍历序列的最后一个结点,则它必是该二叉树的先序遍历序列中的最后一个结点。 ( )
正确答案: B 你的答案: B (正确)
正确
错误
解析;不一定,比如2为中间节点,1为2的左节点,中序遍历2为最后一个节点,但是先序遍历中1是最后一个节点,所以不对。

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

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

31、下面关于B和B+树的叙述中,不正确的是( )

正确答案: C 你的答案: C (正确)
B树和B+树都是平衡的多叉树。
B树和B+树都可用于文件的索引结构。
B树和B+树都能有效地支持顺序检索。
B树和B+树都能有效地支持随机检索。

32、某二叉树共有4个结点,前序(先根序)遍历该二叉树的4个结点并记录各结点取值,得到的结果是“abcd”。那么,该二叉树有多少种可能的拓扑结构?()

正确答案: A 你的答案: C (错误)
14
16
10
12
解析:n个节点的二叉树一共有((2n)!)/(n!*(n+1)!)种

33、下面关于二叉排序树的说法错误的是( )
正确答案: A 你的答案: D (错误)
在二叉排序树中,完全二叉树的查找效率最低
对二叉排序树进行中序遍历,必定得到节点关键字的有序序列
二叉排序树的平均查找长度是O(log2(n))
二叉排序树的查找效率与二叉树的树形有关
解析:A选项:在所有二叉树中,完全二叉树的平均分支长度最短(节点数相同的情况下),查找效率最高,描述相反,故错误
B选项:因为“左树<子树根节点<右树”,而中序遍历也是左树优先输出,子树根节点次之,右树最后输出,这也正是它排序的原理,正确
C选项:以完全二叉树作为典型,n个节点的树深度为log2(n),其他树可以在增删时通过左旋和右旋调整成完全二叉树,正确
D选项:树的形状不同,分支的平均长度也会不同,树形能够综合考虑所有分支,故正确。但是要注意,除了完全二叉树外,其他树的深度并不能决定该树的查找效率,因为深度仅由最长的分支决定,只是考虑了一条路径,无法反映所有路径的平均长度。

34、在一个10阶的B-树上,每个树根结点中所含的关键字数目最多允许为( )个,最少允许为( )个。
正确答案: B 你的答案: B (正确)
10,5
9,4
8,3
7,6
解析:最多M-1 最少M/2-1 向上取整

35、设T是哈夫曼二义树,具有5个叶结点,树T的高度最高可以是( )。

正确答案: C 你的答案: B (错误)
3
4
5
6
解析:在这里插入图片描述
如图所示:树中有5层,树的高度为5.

36、当向二叉排序树中插入一个结点,则该结点一定成为叶子结点。( )
正确答案: A 你的答案: B (错误)
正确
错误
解析:二叉排序树插入在叶子结点,不需要进行重新调整;如果是平衡二叉树才需要进行调整AVL树才需要调整,此时不一定是叶子结点。

37、关于哈弗曼树,下列说法错误的是?

正确答案: A 你的答案: A (正确)
为字符编码需要从叶节点开始再向上
哈弗曼树可以通过在优先级队列中的插入和移除操作来创建
最常出现的字符总是在靠近树顶附近出现
通常,信息解码需要重复的顺着根到叶的路径走
解析:从根节点到叶子结点,不断地向下。

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椒椒。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值