GESP 六级 · GESP 202512 C++ 六级 第 9 题

选择题 · 答案 B · 考点:哈夫曼树

← 整套速查表 GESP 六级 全部真题

题目

以下关于哈夫曼编码的说法,正确的是( )。

答案:B

考点

哈夫曼树

解题思维

哈夫曼编码:每次合并权值最小的两个节点,构建最优二叉树,使带权路径长度(WPL)最小。用于数据压缩。

常见错误

审题时注意题目要求(选正确还是选错误),避免因审题不清失分。涉及代码的题目要逐行分析变量变化。

详细解析(节选)

【考点】哈夫曼树构造|前缀编码定义|编码唯一性判断

本题考查 GESP 六级《数据结构与算法》中"树"模块的前缀编码知识。命题人用"定长编码""唯一性""不能压缩"等绝对化表述,卡住大量死记硬背"哈夫曼=压缩"的考生,迫使你回归算法本质。

哈夫曼编码本质是前缀编码——构造哈夫曼树时,每个字符对应树中某个叶子,任意两叶子路径不同,自然满足"无前缀"。选项 A 错:哈夫曼是变长编码,频率越高的字符编码越短;选项 C 错:合并顺序不同会导致不同哈夫曼树,编码不唯一;选项 D 错:哈夫曼正是经典压缩算法。正确选项 B 直接验证了前缀编码定义。

命题人用"定长""唯一""不能压缩"三个绝对化陷阱:A 利用"树结构"误导你认为长度固定;C 利用"算法确定性"让你忽略合并顺序差异;D 利用"压缩"一词让你误以为哈夫曼不能用于其他场景。最阴险的是 B 的"没有任何一个字符的编码是另一个字符编码的前缀"——这是前缀编码的定义,若只背结论不看树结构,就会把"前缀"理解成"前缀码"的通用属性,而非哈夫曼特有性质。

若把题干改成"以下关于前缀编码的说法正确的是",答案仍是 B,但 C 可能变为"前缀编码一定唯一"(错)或"前缀编码可用于数据压缩"(对)。刷到此类题先问:命题人想考我哪个定义?哈夫曼编码是前缀编码的一种,但前缀编码不一定是哈夫曼编码。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断