🏷️ 知识点:哈夫曼编码

共 2 道相关题目

2023 年第 4 题 数据结构 选择题

在有 6 个字符组成的字符集 S 中,各个字符出现的频次分别为 3, 4, 5, 6, 8, 10,为 S 构造的哈夫曼树的加权平均长度为( )

哈夫曼树

A. 2.4 B. 2.5 C. 2.67 D. 2.75

[tag_link]

正确答案:B

计算字符集 S 构造的 哈夫曼编码加权路径长度,我们需要使用字符的频次来确定每个字符的编码长度,并计算加权平均值。给定字符集 S 中各字符出现的频次为 3,4,5,6,8,10,我们可以按照哈夫曼编码算法构造哈夫曼树。构建的哈夫曼树如图所示。加权平均长度 =(编码长度 1 × 频次 1 + 编码长度 2 × 频次 2 + … + 编码长度 n × 频次 n)/(频次 1 + 频次 2 + … + 频次 n),在本题中,加权平均长度=((3+4+5+6)×3 + (8+10)×2)/(3+4+5+6+8+10)=2.5。本题答案选 B。

2018_Q7_3


2017 年第 6 题 数据结构 选择题

已知字符集 {a, b, c, d, e, f, g, h},若各字符的哈夫曼编码依次是 0100, 10, 0000, 0101, 001, 011, 11, 0001,则编码序列 0100011001001011110101 的译码结果是( )。

哈夫曼编码

A. a c g a b f h B. a d b a g b b C. a f b e a g d D. a f e e f g d

[tag_link]

正确答案:D

哈夫曼编码 是前缀编码,各个编码的前缀各不相同,因此直接拿编码序列与哈夫曼编码一一比对即可。序列可分割为 0100 011 001 001 011 11 0101,译码结果是 a f e e f g d,选项 D 正确。