[数据结构]关于树的练习题(1)

1.下列关于树的叙述正确的是( )
A.树中可以有环
B.树的度是指所有结点中度最小的结点的度
C.树的深度指的是结点数最多的那一层的深度
D.树的根结点是所有结点的祖先结点

答案:D
解析:
A: 树中的节点不能相交
B: 树的度为所有节点中最大节点的度
C: 树的深度为根节点到叶子节点的最大深度

2.2-3树是一种特殊的树,它满足两个条件:

(1) 每个内部结点有两个或三个子结点

(2) 所有的叶结点到根的距离相同

如果一颗2-3树有10个结点,那么它有( )个叶结点。

A.7
B.8
C.7 或 8
D.6 或 7

答案:D
解析:
根据题目意思,每一个非叶子节点至少有两个孩子节点,并且叶子节点都在同一层,所以,假设树的高度为h, 则二三树种最小的节点个数为满二叉树的个数:2^h - 1, 最大个数: (3^h - 1) / 2。所以 2^h - 1 < 10 < (3^h - 1) / 2, h为3,一种结构可以是 1(2(2,2,3)), 也可以是1(3(2,2,2))。所以叶节点个数为6或7

3.在用树表示的目录结构中,从根目录到任何数据文件,有( )通道

A.唯一一条
B.二条
C.三条
D.不一定

答案:A
解析:
树的特点是不相交,所以不可能有多个路径同时到达一个点。

4.在一颗度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有2个,则叶子结点有( )个

A.4
B.5
C.6
D.7

答案:C
解析:
设度为i的节点个数为ni, 该树总共有n个节点,则n=n0+n1+n2+n3.
有n个节点的树的总边数为n-1条.
根据度的定义,总边数与度之间的关系为:n-1=0n0+1n1+2n2+3n3.
联立两个方程求解,可以得到n0 = n2 + 2n3 + 1, n0=6

5.一颗拥有1000个结点的树度为4,则它的最小深度是( )

A.5
B.6
C.7
D.8

答案:B
解析:
如果这棵树每一层都是满的,则它的深度最小,假设它为一个四叉树,高度为h,则这个数的节点个数为(4^h - 1) / 3,当h = 5, 最大节点数为341, 当h = 6, 最大节点数为1365,所以最小深度应该为6。

6.下列关于二叉树的叙述错误的是( )

作业内容
A.二叉树指的是深度为 2 的树
B.一个 n 个结点的二叉树将拥有 n-1 条边
C.一颗深度为 h 的满二叉树拥有 2^h-1 个结点(根结点深度为1)
D.二叉树有二叉链和三叉链两种表示方式

答案:A
解析:
A: 二叉树只最大孩子个数为2,即树的度为二的树。深度描述的为树的层数。
B: 树的边的个数比节点数少一个。

7.一颗完全二叉树上有1001个结点,其叶子结点的个数是( )

A.251
B.500
C.501
D.不能确定

答案:C
解析:
完全二叉树中父亲节点与孩子节点编号的关系(编号从0开始): child = 2 * parent + 1, child2 = 2 * parent + 2,所以从编号500开始的节点就没有孩子节点了, 都为叶子节点,故叶子节点位置[500, 1000],共501个。

8.如果在一颗完全二叉树中,某一个结点没有其左孩子,则该结点一定( )

A.是根结点
B.是叶结点
C.是分支结点
D.在倒数第二层

答案:B
解析:
完全二叉树中如果一个节点没有左孩子,则一定没有右孩子,必定为一个叶子节点,最后一层一定为叶子节点,但是倒数第二层也可能存在叶子节点。

9.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为( )个

A.11
B.12​
C.13
D.14

答案:C
解析:
设Ni表示度为i的节点个数,则节点总数 N = N0 + N1 + N2
节点个数于节点边的关系: N个节点的树有N-1个边
边与度的关系:N - 1 = N1 + 2 * N2
故:N0 + N1 + N2 - 1 = N1 + 2 * N2
因此,得:N0 = N2 + 1
回到原题,N0 = 3,N1 = 8,可得N2 = 2。
因此答案是 3 + 8 + 2 = 13。

10.有n个元素的完全二叉树的深度是( )

A.nlogn
B.nlogn+1
C.logn
D.logn+1

答案:D
解析:
高度为h的完全二叉树,节点个数在: 2^(h - 1) - 1 < n <= 2^h - 1
故:
log(n + 1) <= h < log(n + 1) + 1
所以答案为D: log(n + 1) < logn + 1 < log(n + 1) + 1

猜你喜欢

转载自blog.csdn.net/weixin_43962381/article/details/112425569