离散数学及应用第3版习题答案习题6.3.docxVIP

  • 178
  • 0
  • 约2.67千字
  • 约 6页
  • 2022-02-09 发布于四川
  • 举报

离散数学及应用第3版习题答案习题6.3.docx

应用离散数学 有向图 杭电-周丽、方景龙 第六章 PAGE 5 §6.3 根树 习题6.3 1.分别画出符合要求的图,如果不能画出,请解释原因。 (1)正则二叉树,4个非叶顶点,5个叶顶点。 (2)正则二叉树,9个叶顶点,高度为3。 (3)正则二叉树,9个叶顶点,高度为4。 解: (2)不能画出,因为高度为3的满正则二叉树的叶子只有8个。 (3) 2.求有个叶顶点的正则二叉树的最大高度。 解:个叶顶点的正则二叉树的顶点数p=2t-1 所以最大高度为t-1。 3.给出一个构造二叉搜索树的算法,要求树的高度最低,并写出这个算法的算法步骤。 解:实际上是构造一颗平衡二叉树,这样左子树与右子树的高度相差不过1. 平衡二叉树构建的基本思想:在构建二叉排序树的过程中,每当插入新结点是,先检查是否因插入而破坏了树的平衡性,若是,则找到最小不平衡子树,在保证二叉排序树特性的前提下,调整最小不平衡子树中各节点之间的链接关系,进行左旋或者右旋,使之成为最新的平衡子树。 二叉树上左子树的深度减去右子树的深度的值称为平衡因子BF,对于平衡因子的处理如下面几种情况: 平衡因子为负数,左旋。 平衡因子为正数,右旋。 平衡因子为有正负数,先旋转统一平衡因子的符号,进行双旋转。 4.证明:对于个顶点的二叉搜索树,其最小高度为。 证明:若二叉树有t个叶子,则其高度h≥log2t ,要使二叉搜索树的高度最小,则需要是平衡二叉树,因此其高度为。 5.如果对于每个顶点来说,的右子树与左子树的高度差不超过1,则称二叉树是平衡的。试说明图6.7、图6.12和图6.14中的二叉树是否为平衡二叉树。 解:图6.7不是树。 图6.12和6.14都不是平衡二叉树。 6.定义为一个高度为的平衡二叉树的最少顶点数,证明: (1),,;(2)当时,有, 证明: 高度为0时的平衡二叉树只有一个根结点,所以。 高度为1的平衡二叉树最少要二个顶点,。 高度为2的平衡二叉树最少要四个顶点,。 (2)要证明。 首先介绍引导问题:如何求一棵二叉树的顶点数目? 假设一颗二叉树T,其左右子树分别为TL,TR。又假设T的顶点数目为F(T), 左右子树TL,TR的顶点数目分别为F(TL),F(TR)。则显然:F(T) = F(TL) + F(TR) + 1。 接下来讨论如何求高度为h的平衡二叉树最小需要多少节点: 同样假设T为高度为h的平衡二叉树,其需要最少的顶点数目为Nh。又假设TL,TR为T的左右子树,因此TL,TR也为平衡二叉树。假设F1,F2为TL,TR的最少节点数,则,Nh= F1+F2 +1。那么F1,F2 到底等于多少呢?由于TL,TR与T一样是平衡二叉树,又由于我们知道T的最少节点数是Nh,其中h为T的高度,因此如果我们知道TL,TR的高度就可以知道F1,F2的值了。由平衡二叉树的定义可以知道,TL和TR的高度要么相同,要么相差1,而当TL与TR高度相同(即:都等于h-1)时,我们算出来的Nh并不能保证最小,因此只有当TL与TR高度相差1(即:一个高度为h-1,一个高度为h-2)时,计算出来的Nh才能最小。此时我们假设TL比TR高度要高1(即:TL高度为h-1,TR高度为h-2),则有:F1 = Nh-1,F2 = Nh-2。因此得到结论:Nh= Nh-1 + Nh-2 + 1。 427.画出一个权为3,4,5,6,7,8,9的最优二叉树,并计算出它的总权值。 42 17 17 a a 11 b 7 c 3 d 4 7 14 25 98 9 8 65 6 5 aa a a 总权值为:229 8.下面给出的各符号串集合哪些是前缀码? , , , 解:A1是,A2是,A3不是,A4是。 9.用Huffman算法为图6.22的字母集构造最佳前缀码,画出相应的最优二叉树,并指出传输个按这种频率出现的字母需要多少个二进制数字。 图6.22 习题9的图 图6.23 习题10的图 图6.24 习题11的图 52解: 52 21 21 f31 f 31 13a8 13 a 8 b 5 c 2 d 3 5 10 18 e e d d c c b b a a 所以a的编码是00010 b的编码是00011 c的编码是0000 d的编码是001 e的编码是01 f 的编码是1 所以传输个按这种频率出现的字母需要1.16 ?10n个二进制数字。 10.用Huffman算法为图6.23的字母构造两个最佳前缀码,画出相应的最优二叉树,要求两个最优二叉树的树高不同。

文档评论(0)

1亿VIP精品文档

相关文档