判断题
1-1
对于一个有N个结点、K条边的森林,不能确定它共有几棵树。F
能确定,且共有N-K棵树
选择题
2-1
具有1102个结点的完全二叉树一定有_B_个叶子结点
A.79
B.551
C.1063
D.不确定
设n2为度为2的节点,n1为度为1的节点,n0为度为0的节点;
边数n=节点数-1,即n=1101;
n=2n2+n1;
完全二叉树度为1的节点只能有0个或1个(不信可以画画看一下)
所以n1=0或者1用n=2n2+n1;算一下,n2肯定是整数,把0舍去;
求出n2=550;
度为0的节点数等于度为2的节点数+1;
所以叶子节点数为551
2-2
若森林F有15条边、25个结点,则F包含树的个数是C
A.8
B.9
C.10
D.11
每多一棵树,结点数就少一个
n棵树时,边数 = 结点数-n
15条边全是一棵树的,那么这棵树有16个结点,剩下9个结点都不再形成边,即一个结点算一棵树。那么,共1+9 = 10棵树。
2-3
将森林转换为对应的二叉树,若在二叉树中,结点u是结点v的父结点的父结点,则在原来的森林中,u和v可能具有的关系是: B
1.父子关系; 2. 兄弟关系; 3. u的父结点与v的父结点是兄弟关系
A.只有2
B.1和2
C.1和3
D.1、2和3
1对,因为这个树不一定是二叉树,有多个叉时,左孩子,右兄弟,3,可以画个图试试,试不出来
2-4
对于一个有N个结点、K条边的森林,共有几棵树? A
A.N−K
B.N−K+1
C.N−K−1
D.不能确定
n棵树时,边数 = 结点数-n
2-5
设森林F中有三棵树,第一、第二、第三棵树的结点个数分别为M1,M2和M3。则与森林F对应的二叉树根结点的右子树上的结点个数是:C
A.M1
B.M1+M2
C.M2+M3
D.M3
2-6
由若干个二叉树组成的森林F中,叶结点总个数为N,度为2的结点总个数为M,则该集合中二叉树的个数为: C
A.M−N
B.N−M
C.N−M−1
D.无法确定
设 N N1 N2
TNum = NodeNum - EdgeNum
= N0 + N1 + N2 - (N2 * 2 + N1)
= N0 - N2
= N - M;
2-7
已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是: C
A.39
B.52
C.111
D.119
即第六层有32个节点,其中有8个是叶子节点,说明其余24个是有子节点的,又由于是完全二叉树,所以那24个节点每个节点有2个子节点,共计48个节点,也就是第七层的节点有48个,所以前六层的63加第七层的48就是111个节点了
2-8
在一个用数组表示的完全二叉树中,如果根结点下标为1,那么下标为17和19这两个结点的最近公共祖先结点在哪里(数组下标)? (注:两个结点的“公共祖先结点”是指同时都是这两个结点祖先的结点) B
A.8
B.4
C.2
D.1
处于 i 处结点的父节点一定为 [i / 2] (小于 i / 2的最大整数) 的结点 , 因此17, 19不断除以二,直至相等。
①17 / 2 = 8, 19 / 2 = 8;
②8 / 2 = 4, 8 / 2 = 4。
2-9
具有65个结点的完全二叉树其深度为(根的深度为1): B
A.8
B.7
C.6
D.5
A如果是8,假设前7层都是满二叉树,则结点数为2^7-1=127,不符合条件
B如果是7,假设前6层都是满二叉树,则结点数为2^6-1=63,然后第7层有两个结点,符合要求。
C和D不符合现实,前6层满二叉树才是63个结点,故C,D不对