数据结构——树与二叉树の选择题整理

二叉树的概念

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

解析:选B
假设n2为由2个孩子的结点数量,n1为由1个孩子的结点数量,n0为由0个孩子的结点数量。
在完全二叉树中n0=n2+1,因为n0=124,因此n2=123。
在完全二叉树中,n1为1或0,要使有最多结点,此时n1=1。故最多一共有124+123+1=248个结点

2、在一棵完全二叉树中,其根的序号为1,()可判定序号为p和q的两个结点是否在同一层。
A、⌊ log2p ⌋ = ⌊ log2q ⌋
B、log2p = log2q
C、⌊ log2p ⌋ + 1 = ⌊ log2q ⌋
D、⌊ log2p ⌋ = ⌊ log2q ⌋ + 1

解析:A
由完全二叉树的性质,序号为i(i >=1)的结点,在第⌊ log2i ⌋ + 1层,因此序号为p的结点在⌊ log2p ⌋ + 1层,序号为q的结点在⌊ log2q ⌋ + 1。若两者在同一层,则⌊ log2p ⌋ + 1 = ⌊ log2q ⌋ + 1。因此⌊ log2p ⌋ = ⌊ log2q ⌋ 可以进行判断。

3、假定一棵三叉树的结点数为50,则它的最小高度为()
A、3
B、4
C、5
D、6

解析:选C
假设有h层,结点最少有(3h-1)/(3-1),最多有(3h+1-1)/(3-1)。即(3h-1)/2<=50<=(3h+1-1)/2。解得h=5

4、已知一颗完全二叉树的第六层(设根为第一层)有8个叶结点,则该完全二叉树的结点个数最多是()
A、39
B、52
C、111
D、119

解析:选C
题干中说第六层有8个叶结点,对于完全二叉树来说,叶结点可能出现在最后一层,也可能出现在倒数第二层,显然,当第六层是倒数第二层时,结点数量更多,因此,此完全二叉树共7层,且1~6层均是满的二叉树,1 ~ 6层的结点数量为:1+2+4+8+16+32=63个。根据题干知,第六层有8个叶结点,因此剩下的32-8=24个结点均最多有2个孩子,故第七层叶子结点数量为24*2=48个。总的结点数量最多为:48+63=111个。

5、对于任意一棵高度为5且有10个节点的二叉树,若采用循序存储结构保存,每个结点占1个存储单元(仅存放结点的数据信息),则存放该二叉树需要的存储单元数量至少是()
A、31
B、16
C、15
D、10

解析:选A
对于一棵高度为5的二叉树,为了满足其任意性,因此需要像满二叉树一样存储才能满足这个要求,因此需要1+2+4+8+16=31个存储空间。
如果不考虑任意一棵,而是说只要能有一颗满足高度为5且有10个节点的二叉树被存储,则需要的存储空间最小为16。即结点尽可能地分布在靠近根节点且靠近左侧的位置。


二叉树的遍历和线索二叉树

1、在二叉树中有两个结点m和n,若m是n的祖先,则使用()可以找到从m到n的路径。
A、先序遍历
B、中序遍历
C、后序遍历
D、层次遍历

解析:选C
在后序遍历退回时访问根结点,就可以从下到上把从n到m的路径上的所有结点输出。若果采用非递归的方法,则当后序遍历访问到n时,栈中把从根到n的父指针的路径上的所有结点都记录下来,也可以找到从m到n的路径。

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

解析:选C
二叉树是一种逻辑结构
线索二叉树是二叉树存储在计算机中的一种结构,即物理结构。

3、若X是二叉树中序线索树中的一个有左孩子的结点,且X不为根,则X的前驱为()
A、X的双亲
B、X的右子树中最左的结点
C、X的左子树中最右的结点
D、X的左子树中最右的叶结点

解析:选C
中序线索树的遍历顺序为:左根右。因此是左子树中最右边的结点
在这里插入图片描述

4、()的遍历仍需要栈的支持
A、前序线索树
B、中序线索树
C、后序线索树
D、所有线索树

解析:选C
对于一棵前序线索树或者中序线索树,每个结点都会与相应的前驱或者后驱指针相连。而对于后序线索树,在根结点右孩子有右子树时,根结点最后就无法被访问,因此需要栈的支持。
在这里插入图片描述


树、森林

1、利用二叉链表存储森林时,根结点的右指针是()
A、指向最左兄弟
B、指向最右兄弟
C、一定为空
D、不一定为空

解析:选D
森林转化为二叉树的规则:左孩子右兄弟,即根节点为森林中第一棵树的根节点,左子树的根节点为森林中第一棵树的左孩子根节点,右子树的根节点为森林中其他树的根节点。若森林中不止一棵树,则根结点的右指针不为空,若只有一棵树,则为空。因此根结点的右指针不一定为空。因为根节点没有兄弟一说,所以不存在什么指向最左还是最右兄弟。

2、设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是()
A、m-n
B、m-n-1
C、n+1
D、条件不足,无法判断

解析:选A
根结点+左子树结点数=森林中第一棵树的结点数
在这里插入图片描述


树与二叉树的应用

1、若度为m的哈夫曼树中,叶子结点个数为n,则非叶子结点的个数为()
A、n - 1
B、⌊ n / m ⌋ - 1
C、⌈ (n-1) / (m-1) ⌉
D、⌈ n / (m-1) ⌉ - 1

解析:选C
因为在度为m的哈夫曼树中,只有度为m的结点和度为0的结点(即叶子结点)。设总的结点数为N,N=nm+n0 。且利用总的度数+1=总的结点数,可知m*nm+1=N 。两个公式结合可得:m * nm+1 = nm+n0。且n0 = n。转化上述式子得nm = ⌈ (n-1) / (m-1) ⌉

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值