二叉树,图相关易错选择和解析

1-1

若无向图G =(V,E)中含10个顶点,要保证图G在任何情况下都是连通的,则需要的边数最少是: (3分)

A.45
B.37
C.36
D.9	答案:37

[解析] 本题考查图的基本概念。
要保证无向图G在任何情况下都是连通的,即任意变动图G中的边,G始终保持连通。
首先需要图G的任意9个结点构成完全连通子图G1,需n(n-1)/2=9×(9-1)/2=36条边,
然后再添加一条边将第10个结点与G1连接起来,共需37条边。
本题非常容易错误地选择选项D,主要原因是对“保证图G在任何情况下都是连通的”的理解。

1-2

如果G是一个有36条边的非连通无向图,那么该图顶点个数最少为多少?(3分)

A.7
B.8
C.9
D.10	答案:10

答案解析:

因为G为非连通图,所以G中至少含有两个连通子图,
由于题目问至少有几个顶点,而且该图不含自回路和多重边,
所以一个连通图可看成是一个点构成,另一个连通图可看成是一个完全图
(因为完全图在最少顶点的情况下能得到的边数最多),这样该问题转化为这个36条边的完全图有多少个顶点,
由公式可知:36=n×(n-1)/2,则n=9,加上另一个连通图(只有一个点),则图G至少有10个顶点.

1-3

设N个顶点E条边的图用邻接表存储,则求每个顶点入度的时间复杂度为: (2分)

A.O(N)
B.O(N​2​​)
C.O(N+E)
D.O(N×E)	答案:O(N+E)

O(n*n)是用邻接矩阵存储时的时间复杂度。
算法就是遍历每一条边,然后把每条边的终点的入度+1.		
在邻接表中,就是要依次访问每个顶点,然后在每个顶点中依次访问每条边,
把这些边的终点的入度+1,也就是每个顶点和每条边依次要各访问一遍,所以时间复杂度是	O(n+e)。
在邻接矩阵中,算法需要遍历邻接矩阵的每一个点,而邻接矩阵有n*n个点,所以时间复杂度是O(n*n)。

1-4

一个有N个顶点的强连通图至少有多少条边? (2分)

A.N−1
B.N
C.N+1
D.N(N−1)	答案:N

强连通图对有向图而言,其概念是:在有向图G中,如果对于每一对v1,v2,v1!=v2,
从v1到v2都存在路径。
还有强连通分量,有向图的极大强连通分量子图称作有向图的强连通分量。

1-5已知无向图G含有16条边,其中度为4的顶点个数为3,度为3的顶点个数为4,其他顶点的度均小于3。图G所含的顶点个数至少是:(4分)

A.10
B.11
C.13
D.15	答案:11

16条边得出结点总度数为32
去除3个4度,4个3度,还剩8,因为题上说其余结点度数都小于3,所以度数最大为2
所以最少还有4个结点,每个结点度数都为2, 4+3+4=11。

1-6
给定一有向图的邻接表如下。从顶点V1出发按深度优先搜索法进行遍历,则得到的一种顶点序列为:(2分)
在这里插入图片描述

A.V1,V5,V4,V7,V6,V2,V3
B.V1,V2,V3,V4,V7,V6,V5
C.V1,V5,V4,V7,V6,V3,V2
D.V1,V5,V6,V4,V7,V2,V3	答案:C
	
很容易选为A,但邻接表不可以’跳‘,回溯到v5后面为v3

1-7
在图中自a点开始进行广度优先遍历算法可能得到的结果为: (2分)
在这里插入图片描述

A.a, e, d, f, c, b
B.a, c, f, e, b, d
C.a, e, b, c, f, d
D.a, b, e, c, d, f		答案:D

很容易选为C,但要考虑算法,C中e先进队列,所以肯定为e的下一个结点d而不是f,D同理正确。

1-8
给定无向图G,从V0出发进行深度优先遍历访问的边集合为: {(V0,V1), (V0,V4), (V1,V2), (V1,V3), (V4,V5), (V5,V6)}。则下面哪条边不可能出现在G中? (3分)

A.(V0,V2)
B.(V0,V6)
C.(V1,V5)
D.(V4,V6)	答案:C

 解析 : 根据给出的边可以画出一颗树, 然后从选项里边添加边看是否符合题意
 (即添加上某条边时是否会导致体某条边在深度搜索的时候“消失”)。

1-9
若要求在找到从S到其他顶点最短路的同时,还给出不同的最短路的条数,我们可以将Dijkstra算法略作修改,增加一个count[]数组:count[V]记录S到顶点V的最短路径有多少条。则count[V]应该被初始化为: (3分)

A.count[S]=1;对于其他顶点V则令count[V]=0
B.count[S]=0;对于其他顶点V则令count[V]=1
C.对所有顶点都有count[V]=1
D.对所有顶点都有count[V]=0	答案:A

1-10

具有1102个结点的完全二叉树一定有__个叶子结点。(3分)

A.79
B.551
C.1063
D.不确定	答案:551

解析:设n2为度为2的节点,n1为度为1的节点,n0为度为0的节点;
边数n=节点数-1,即n=1101;n=2*n2+n1;
完全二叉树度为1的节点只能有0个或1个(不信可以画画看一下)
所以n1=0或者1用n=2*n2+n1;算一下,n2肯定是整数,把0舍去;
求出n2=550;
总结点数:1102减去550-1=551

1-11

已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是: (3分)

A.39
B.52
C.111
D.119	答案:111
这道题有点坑,要看清楚题,8个叶结点不是结点,不然容易选为A
最后为:1层:1 + 二层:2 + 三层:4 + 四层:8 + 五层:16 + 六层:32 + 七层:(32-8)*2=48 =111

1-122-36

下列叙述错误的是()。 (2分)

A.一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和
B.当一棵具有n 个叶子结点的二叉树的WPL 值为最小时,称其树为哈夫曼树,其二叉树的形状是唯一的
C.哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近
D.哈夫曼树的结点个数不能是偶数	答案:B


解析:A选项 "一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和" 是正确的,
 注意分支结点的定义——度不为0的结点为分支结点,即不包括叶子结点。然后观察二叉树,
 可以容易看出,一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和。
 综上所述,哈夫曼树的带权路径长度可以有两种表达方式:
 ①树中所有的叶结点的权值乘上其到根结点的路径长度;②所有分支结点的权值之和。
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值