Skip to content

2023年 408 数据结构 第 4 题

数据结构2023年选择题2分

题目

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

错因

A

可能直接按"6 个叶子的满二叉树深度"估算。6 个叶子的二叉树最浅是深度 3 的不满二叉树(4 个深度 3 + 2 个深度 2),平均长度 ;如果用更乐观估计(4 个深度 2 + 2 个深度 3)就是 ,凑出 2.4 大概是把这两个估计折中又算错了一次——总之没真正按权重做哈夫曼合并。

C

把"加权平均长度"当成了"普通平均长度"——直接对 6 个叶子的深度取算术平均。但定义里要乘频次(即权重),频次大的字符深度小,频次小的字符深度大,加权后的平均 < 算术平均。

D

可能按某种次优编码计算或合并顺序错了:比如忘了"每次取最小两个"原则,先合并了 6+8 而不是 3+4,导致树形不是哈夫曼树。错误的合并顺序会让 WPL 比正确值更大,得到偏大的结果(如 2.75)。

总解析

第一步:构造哈夫曼树(每次合并最小两个)

初始集合:{3, 4, 5, 6, 8, 10},权重总和 = 36

步骤取出合并为当前集合
13, 47
25, 611
37, 815
410, 1121
515, 2136
3615734821101156

第二步:读取每个叶子的深度

叶子频次深度
333
443
882
10102
553
663

第三步:算 WPL(带权路径长度)

第四步:加权平均长度 = WPL / 总权重

最终答案是 B(2.5)

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数