【单选】用权值 {1, 2, 3, 4, 5, 6, 7, 8} 构造哈夫曼树,其带权路径长度是( )。
哈夫曼树用"每次取最小的两个权值合并"的贪心过程构造,带权路径长度 WPL 恰好等于"所有合并代价之和"。把 1…8 依次按规则合并,把每次合并得到的数加起来即可。
只算最后一次合并的 36(等于总权重,也是错选 A 的来源);或者把"合并次数"当成 WPL;也会忘了合并后的新结点要放回集合参与后续比较。
本题考查哈夫曼树的构造与带权路径长度(WPL)。
初始集合 {1, 2, 3, 4, 5, 6, 7, 8}:
| 步骤 | 取出的两个最小 | 产生的新结点 | 累计 |
|---|---|---|---|
| 1 | 1, 2 | 3 | 3 |
| 2 | 3, 3 | 6 | 9 |
| 3 | 4, 5 | 9 | 18 |
| 4 | 6, 6 | 12 | 30 |
| 5 | 7, 8 | 15 | 45 |
| 6 | 9, 12 | 21 | 66 |
| 7 | 15, 21 | 36 | 102 |
WPL = 3 + 6 + 9 + 12 + 15 + 21 + 36 = 102,选 D。
合并完成后各叶子的深度:8 和 7 在第 2 层,6、4、5 在第 3 层,3 在第 4 层,1 和 2 在第 5 层。
WPL = 8×2 + 7×2 + 6×3 + 4×3 + 5×3 + 3×4 + 1×5 + 2×5 = 16 + 14 + 18 + 12 + 15 + 12 + 5 + 10 = 102 ✓ 与合并法一致。