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

二叉树的概念

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) ⌉

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
第1章 绪论 1.1 数据结构的基本概念和术语 1.1.1 引言 1.1.2 数据结构有关概念及术语 1.1.3 数据结构和抽象数据类型(ADT) 1.2 算法描述与分析 1.2.1 什么是算法 1.2.2 算法描述工具——C语言 1.2.3 算法分析技术初步 习题一 第2章 线性表 2.1 线性表的定义及其运算 2.1.1 线性表的定义 2.1.2 各种运算简介 2.2 线性表的顺序存储结构(向量) 2.2.1 顺序存储结构(向量) 2.2.2 向量中基本运算的实现 2.3 线性表的链表存储结构 2.3.1 单链表与指针 2.3.2 单链表的基本运算 2.4 循环链表和双向链表 2.4.1 循环链表 2.4.2 双向链表 2.4.3 顺序存储结构与链表存储结构的综合分析与比较 2.5 多项式相加问题 2.5.1 多项式相加的链表存储结构 2.5.2 多项式相加的算法实现 2.6 线性表的算法实现举例 2.6.1 实现线性表顺序存储结构及运算的C语言源程序 2.6.2 单链表处理的C语言源程序 习题二 第3章 栈和队列 3.1 栈 3.1.1 栈的定义及其运算 3.1.2 栈的顺序存储结构(向量) 3.1.3 栈的链表存储结构 3.1.4 栈的应用 3.2 队列 3.2.1 队列的定义及运算 3.2.2 队列的顺序存储结构(向量) 3.2.3 队列的链表存储结构 3.3 栈和队列的算法实现举例 习题三 第4章 串 4.1 串的基本概念 4.2 串的存储结构 4.2.1 串的顺序存储 4.2.2 串的链表存储 4.2.3 串变量的存储映象 4.3 串的运算 4.3.1 串的运算简介 4.3.2 串的匹配运算 4.4 文本编辑 习题四 第5章 数组和广义表 5.1 数组的基本概念 5.1.1 数组的概念 5.1.2 数组的顺序表示 5.1.3 特殊矩阵的压缩存储 5.2 稀疏矩阵的三元组存储 5.2.1 三元组表 5.2.2 稀疏矩阵的运算 5.3 稀疏矩阵的十字链表存储 5.3.1 十字链表的组成 5.3.2 十字链表的有关算法 5.4 广义表 5.4.1 广义表的概念和特性 5.4.2 广义表的存储结构 5.4.3 求广义表的深度 5.4.4 广义表的输出 5.4.5 建立广义表的存储结构 5.5 迷宫问题 习题五 第6章 6.1 的基本概念和术语 6.1.1 的定义 6.1.2 的常用术语 6.1.3 的表示方法 6.2 二叉树 6.2.1 二叉树的定义 6.2.2 二叉树的重要性质 6.2.3 二叉树的存储结构 6.2.4 二叉树二叉链表的一个生成算法 6.3 遍历二叉树 6.3.1 先根遍历 6.3.2 中根遍历 6.3.3 后根遍历 6.3.4 二叉树遍历算法的应用 6.4 线索二叉树 6.4.1 线索二叉树的基本概念 6.4.2 线索二叉树的逻辑表示图 6.4.3 中根次序线索化算法 6.4.4 在中根线索上检索某结点的前趋或后继 6.4.5 在中根线索上遍历二叉树 6.5 二叉树和森林 6.5.1 的存储结构 6.5.2 二叉树之间的转换 6.5.3 森林与二叉树的转换 6.5.4 一般或森林的遍历 6.6 的应用 6.6.1 二叉排序 6.6.2 哈夫曼及其应用 6.7 二叉树的建立和遍历C语言源程序示例 习题六 第7章 图 7.1 图的基本概念和术语 7.1.1 图的基本概念 7.1.2 路径和回路 7.1.3 连通图 7.1.4 顶点的度 7.2 图的存储结构 7.2.1 邻接矩阵 7.2.2 邻接链表 7.3 图的遍历和求图的连通分量 7.3.1 图的建立 7.3.2 图的遍历 7.3.3 求图的连通分量 7.4 图的生成 7.4.1 生成的概念 7.4.2 最小生成 7.4.3 普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法 7.5 最短路径 7.5.1 单源顶点最短路径问题求解 7.5.2 求有向网中每对顶点间的路径 7.6 有向无环图及应用 7.6.1 拓扑排序 7.6.2 关键路径 7.7 图的算法C语言程序实现举例 7.7.1 无向图的邻接表的建立和遍历 7.7.2 有向无环图的拓扑排序和求关键路径 习题七 第8章 查找 8.1 基本概念

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值