《数据结构》_第五章_树和二叉树_PTA&蜂考_复习资料_严蔚敏、李冬梅、吴伟民编著

本文深入探讨了二叉树的相关性质,包括完全二叉树、线索二叉树和哈夫曼树的概念。讨论了完全二叉树中结点的度数与存储结构,以及哈夫曼树的构建与特性,如度为1的结点不存在、带权路径长度最短等。同时,解释了不同遍历方式下的二叉树结构特点,如前序、中序和后序遍历。此外,还涉及了二叉树在存储、编码和优化等方面的应用。
摘要由CSDN通过智能技术生成

本文章部分资料来源:蜂考_数据结构_pdf,本文章不用于商业用途,仅用于自学,侵删

知识点:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

判断题:

1 . 完全二叉树的存储结构通常采用顺序存储结构。 √

2 . 完全二叉树一定存在度为1的结点。×

当只有根节点的时候

3 . 完全二叉树中,若一个结点没有左孩子,则它必是树叶。 √

4 . 若A和B都是一棵二叉树的叶子结点,则存在这样的二叉树,其前序遍历序列为…A…B…,而中序遍历序列为…B…A…。 ×

5 . 二叉树通常有顺序存储结构和链式存储结构。 √

6.一棵有124个结点的完全二叉树,其叶结点个数是确定的。√

一棵124个叶结点的完全二叉树,假设n0为叶子结点数,n1为度为1结点数,n2为度为2结点数,则有总结点数为n0+n1+n2;而n2=n0-1=123;且完全二叉树中度为1的结点只能为一个或0个,所以总结点数为124+1+123=248个.

7 . 二叉树中序线索化后,不存在空指针域。 ×

8 . 二叉树按某种顺序线索化后,任一结点均有指向其前驱和后继的线索。 ×

9 . 在中序线索二叉树中,每一非空的线索均指向其祖先结点。 √

10 . 一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和 √

11 . 哈夫曼树是带权路径长度最短的树,路径上权值较大的结点离根较近 ×

12 . 哈夫曼树的结点个数不能是偶数 √

13 . 哈夫曼树中一定没有度为 1 的结点。√

14.存在一棵总共有2016个结点的二叉树,其中有16个结点只有一个孩子 ×

设度为2的顶点有x个,度为0的顶点有x+1个,二叉树只有度为2、1、0的节点
2016=x+x+1+16 2x=1999
除不尽,故不可能存在该二叉树

15.对于一个有N个结点、K条边的森林,不能确定它共有几棵树。 ×

设边的数目 EdgeNum, 树的数目为 TreeNum 根据 NodeNum - 1 = EdgeNum
所以 (NodeNum1 -1) + … + (NodeNumi - 1) = K 即 N - TreeNum = K
所以树的数目=N-K

16.哈夫曼编码是一种最优的前缀码。对一个给定的字符集及其字符频率,其哈夫曼编码不一定是唯一的,但是每个字符的哈夫曼码的长度一定是唯一的。×

哈夫曼字符的频率相同时每个字符的码长不是确定的。

17.已知二叉树的前序遍历和后序遍历序列并不能惟一地确定这棵树,因为不知道树的根结点是哪一个。 ×

18 . 一棵非空二叉树,若先序遍历与后序遍历的序列相反,则该二叉树只有一个叶子结点。 √

19.某二叉树的前序和后序遍历序列正好相反,则该二叉树一定是高度等于其结点数。√

20.某二叉树的前序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。√

21.某非空二叉树 T 的先序遍历和后序遍历序列相同,则 T只有一个根节点。√

22.若一个结点是某二叉树的中序遍历序列的最后一个结点,则它必是该树的前序遍历序列中的最后一个结点。 ×

反例:根节点没有右子树的二叉树

23.某二叉树的后序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无右孩子。√

24.某二叉树的中序序列和后序序列正好相反,则该二叉树一定是任一结点无左孩子。√

选择题:

1、 深度为k的完全二叉树至少有( 2^(k−1) )个结点,至多有(2^k-1)个结点。

2、 引人线索二叉树的目的的是(加快查找结点的前驱或后继的速度)。

3、 设给定权值总数有n 个,其哈夫曼树的结点总数为(2n-1)。

4、设每个d叉树的结点有d个指针指向子树,有n个结点的d叉树有多少空链域? ( n(d−1)+1 )

每个d叉树的结点有d个链域
应该具有边的条数:nd
现有边的条数:n-1
空链域个数:nd-(n-1)= n(d−1)+1
题解来源

5、如果A和B都是二叉树的叶结点,那么下面判断中哪个是对的?
A.存在一种二叉树结构,其前序遍历结果是…A…B…,而中序遍历结果是…B…A…
B.存在一种二叉树结构,其中序遍历结果是…A…B…,而后序遍历结果是…B…A…
C.存在一种二叉树结构,其前序遍历结果是…A…B…,而后序遍历结果是…B…A…
D.以上三种都是错的

6、在下述结论中,正确的是:
①只有一个结点的二叉树的度为0;
②二叉树的度为2;
③二叉树的左右子树可任意交换;
④深度为K的完全二叉树的结点个数小于或等于深度相同的满二叉树。

7、任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序( 不发生改变 )

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

如果第六层是满的话,那么第6层将会有32个节点,题目说只有8个叶节点,那只有两种情况:
1.6层只有8个节点,都是叶节点
2.6层节点满了,但有8个节点没有子节点,只能作为叶节点。 由于题目求更多:所以考虑第2钟情况: 这时候 前6层节点数为32+16+…+1 =63 第7层节点数:(32-8)*2=48
——第6层节点数共32个,减去8个叶节点数,每个再带有两个子节点,相加——111
更多题目详解

9、具有65个结点的完全二叉树其深度为(根的深度为1):7

log65 向上取整之后为7

10、下列线索二叉树中(用虚线表示线索),符合后序线索树定义的是:
在这里插入图片描述

不了解线索二叉树知识的线戳→ b站_青岛大学_王卓老师_线索二叉树
该二叉树的后序遍历结果为dbca,结合线索二叉树的知识后得知b选项是正确答案

11、设森林F中有三棵树,第一、第二、第三棵树的结点个数分别为M1,M2,M3。则与森林F对应的二叉树根结点的右子树上的结点个数是:( M2+M3 )

12、对N(N≥2)个权值均不相同的字符构造哈夫曼树。下列关于该哈夫曼树的叙述中,错误的是:
A.树中一定没有度为1的结点
B.树中两个权值最小的结点一定是兄弟结点
C.树中任一非叶结点的权值一定不小于下一层任一结点的权值
D.该树一定是一棵完全二叉树

哈夫曼树:带权路径长度达到最小的二叉树,也叫做最优二叉树。
注意,哈夫曼树只是一棵最优二叉树,不一定是完全二叉树,也不一定是平衡二叉树。完全是八竿子打不着的事情,哈夫曼树不关注树的结构,只关注带权路径长度好吗。。

13、二叉树的中序遍历也可以循环地完成。给定循环中堆栈的操作序列如下(其中 push 为入栈,pop 为出栈):push(1), push(2), push(3), pop(), push(4), pop(), pop(), push(5), pop(),pop(), push(6), pop()以下哪句是对的?( A.3 和 5 是兄弟结点 )

栈的出队序列为:3;4;2;5;1;6;结合根节点为1,根节点的左子树的根节点为2,可画出该二叉树
在这里插入图片描述

14、具有1102个结点的完全二叉树一定有( 551 )个叶子结点。

设n2为度为2的节点,设n1为度为1的节点,n0为度为0的节点;
n0=n2+1; n0+n1+n2=1102
完全二叉树度为1的节点只能有0个或1个 将n1=0或者1代入 n0+n1+n2=1102=n后,舍去n1=0; 求得n2=550;
n0=n2+1=551

15、设一棵非空完全二叉树 T 的所有叶节点均位于同一层,且每个非叶结点都有 2 个子结点。若 T 有 k 个叶结点,则 T 的结点总数是: 2k−1

k 个叶结点,则 T 的结点总数是: ( 2*k-1 ) 由题意得,T没有度为1的节点,度为0的节点个数比度为2的节点个数多1,

16、若将一棵树T转化为对应的二叉树BT,则下列对BT的遍历中,其遍历序列与T的后根遍历序列相同的是( 中序遍历 )

后根遍历树可分为两步:
① 从左到右访问双亲结点的每个孩子(转化为二叉树后就是先访问根结点再访问右子树);
②访问完所有孩子后再访问它们的双亲结点(转化为二叉树后就是先访问左子树再访问根结点)
因此树T的后根序列与其相应的二叉树BT的中序遍历序列相同。

17、对 n 个互不相同的符号进行哈夫曼编码。若生成的哈夫曼树共有 115 个结点,则 n 的值是:58

哈夫曼树不存在度为1的节点,设度为2的节点有n个,度为0的节点有n+1个,
则:115=n+n+1 n=57
由于符号在哈夫曼树上作为叶子结点,故57+1=58

18、以二叉链表作为二叉树的存储结构,在具有 n 个结点的二叉链表中(n>0),空链域的个数为( n+1 )

n个结点2n个链域,n-1条边,2n-(n-1)=n+1

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

因为是顺序存储结构保存,所以需要的存储单元是给定高度的全部结点都要考虑。 高度为5的满二叉树共有:2^(5)-1=31个结点
31*1个存储单元=31;

20、已知森林 F 及与之对应的二叉树 T,若 F 的先根遍历序列是 a, b, c, d, e, f,后根遍历序列是 b, a, d, f, e, c,则 T 的后序遍历序列是:( b, f, e, d, c, a )

不知道树与森林遍历的戳→b站_青岛大学_王卓_树与森林的遍历
根据先根遍历序列和后根遍历序列得出该森林,然后将其转换为二叉树(不知道如何将森林转换为二叉树戳→森林转化为二叉树(详解版)),最后后序遍历得到的二叉树即可
在这里插入图片描述

21、一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶子结点个数是( 82 )。

树中总结点数:所有结点的度数+1(加1是因为根结点没有父结点) 即:所有结点的度数+1 = 20 x 4+10 x 3+1 x 2+10+1
= 123 而又因为树中总结点数 = 树中度为0的结点数 + 树中度为1的结点数 + 树中度为2的结点数 + 树中度为3的结点数 + 树中度为4的结点数。而叶节点数则为树中度为0的结点数, 故叶节点数 = 123-10-1-10-20 = 82
解析来源

22、某森林F对应的二叉树为T,若T的先序遍历序列是a,b,d,c,e,g,f,中序遍历序列是b,d,a,e,g,c,f,则F中树的棵树是( 3 )

首先根据先序和中序遍历构造二叉树↓
在这里插入图片描述
根据孩子兄弟表示法转换成对应的森林↓(不会树与森林转换的戳→b站_青岛大学_王卓_森林与二叉树的转换
在这里插入图片描述

23、对一棵二叉树的结点从 1 开始顺序编号。要求每个结点的编号小于其左、右孩子的编号,且左孩子的编号小于右孩子的编号。可采用 ( 先序遍历 )实现编号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微__凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值