🏷️ 知识点:Ds.05.05.01

共 8 道相关题目

课后题 年第 95 题 数据结构 选择题

在有 n 个叶结点的哈夫曼树中,非叶结点的总数是( )。

A. n−1 B. n C. 2n−1 D. 2n

[tag_link]

正确答案:A

推导

含 n 个叶结点的哈夫曼树是严格二叉树。设分支结点数为 n₂,由 n₀=n₂+1 得 n₂=n−1,故选 A。

易错点

不要把总结点数 2n−1 误当作非叶结点数;题目只问分支结点。


课后题 年第 97 题 数据结构 选择题

下列编码中,不是前缀编码的是( )。

A. {00, 01, 10, 11} B. {0, 1, 00, 11} C. {0, 10, 110, 111} D. {10, 110, 1110, 1111}

[tag_link]

正确答案:B

推导

前缀编码要求任一码字都不是另一码字的前缀。B 中 0 是 00 的前缀,1 也是 11 的前缀,因此 B 不能即时无歧义译码。

易错点

检查时要逐个短码与所有长码的开头比较;码长不同并不自动违反前缀条件。


课后题 年第 98 题 数据结构 选择题

设哈夫曼编码的长度不超过 4,若已对两个字符编码为 1 和 01,则还最多可对多少个字符编码?

A. 2 B. 3 C. 4 D. 5

[tag_link]

正确答案:C

推导

码字 1 占据根的 1 分支,码字 01 占据 01 叶位;剩余只能位于 00 子树。长度上限为 4 时,00 可扩展成 0000、0001、0010、0011,共 4 个码字,故选 C。

易错点

不能再使用以 1 或 01 开头的码字,也不能把内部前缀 0、00 同时当作码字。


课后题 年第 99 题 数据结构 选择题

一棵哈夫曼树共有 215 个结点,对其进行哈夫曼编码,共能得到多少个不同的码字?

A. 107 B. 108 C. 214 D. 215

[tag_link]

正确答案:B

推导

哈夫曼树只有度 0 和度 2 的结点,若叶数为 n,则总结点数为 2n−1。由 215=2n−1 得 n=108,每个叶结点对应一个码字,故选 B。

易错点

内部结点不对应源符号码字;码字数等于叶结点数,不等于总结点数。


课后题 年第 100 题 数据结构 选择题

设某哈夫曼树有 5 个叶结点,则该哈夫曼树的高度最高可以是( )。

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

[tag_link]

正确答案:C

推导

根为第 1 层。5 个叶结点对应 4 个分支结点;令分支结点尽量形成一条链,每层另接一个叶结点,最深叶可到第 5 层,所以最高高度为 5,选 C。

易错点

题目按结点所在层数计高度;若改用边数计高度,数值会少 1,必须先看约定。


课后题 年第 101 题 数据结构 选择题

以下对于哈夫曼树的说法中,错误的是( )。

A. 用一组权值构造出的哈夫曼树可能不唯一,但带权路径长度唯一 B. 哈夫曼树具有最小的带权路径长度 C. 哈夫曼树中没有度为 1 的结点 D. 哈夫曼树中除了度为 1 的结点,还有度为 2 的结点和叶结点

[tag_link]

正确答案:D

推导

二叉哈夫曼树是严格二叉树,结点的度只能为 0 或 2,不存在度为 1 的结点,因此 D 声称存在度 1 结点是错误的。其余三项分别描述形态可不唯一、WPL 最小和严格二叉性质。

易错点

权值相同时树形可能不同,但最小 WPL 不变;不要把树形唯一与最优值唯一混为一谈。


课后题 年第 103 题 数据结构 选择题

若度为 m 的哈夫曼树中,叶结点数为 n,则非叶结点的个数为( )。

A. n−1 B. ⌊n/m⌋−1 C. (n−1)/(m−1) D. ⌈n/(m−1)⌉−1

[tag_link]

正确答案:C

推导

m 叉哈夫曼树的结点度只能为 0 或 m。设非叶结点数为 i,由边数 mi=n+i−1 得 i=(n−1)/(m−1),故选 C。

易错点

该式要求叶数满足可构造条件;否则构造前应补权值 0 的虚叶,使 (n−1) 能被 (m−1) 整除。


课后题 年第 108 题 数据结构 综合题

设给定权集 W={5,7,2,3,6,8,9},构造关于 W 的一棵哈夫曼树,并求其带权路径长度 WPL。

[tag_link]

参考答案

依次合并两个最小权值:2+3=5,5+5=10,6+7=13,8+9=17,10+13=23,17+23=40。因此 WPL=5+10+13+17+23+40=108。

推导过程

叶深复核:2、3 的深度为 4,原权值 5、6、7 的深度为 3,8、9 的深度为 2;故 WPL=(2+3)×4+(5+6+7)×3+(8+9)×2=108。左右子树可以互换,不影响 WPL。

复杂度与边界

最小堆构造时间 O(n log n)、空间 O(n);单权值时 WPL=0。

易错点

每次都要把新权值放回集合;WPL 是各次合并权值之和,不是叶权值之和。

评分要点

  • 写全六次合并
  • 得出 WPL=108
  • 能用叶深或合并和复核