Skip to content

2026年 408 数据结构 第 5 题

数据结构2026年选择题2分

题目

假设二叉树中节点权值为 a=1, b=2, c=4, d=5, e=8, f=10, g=12。当带权路径长度 (WPL) 最小时,与节点 e(权值 8)处于相同深度的节点是哪些?

错因

A

只看到 d 也比较"小"就以为它和 e 同深度。实际上构造哈夫曼时,d=5 与"abc 子树根 7"合并形成 12,而 e=8 是直到第 5 步才与 f=10 合并形成 18——d 在二叉树里被"埋"得更深,跟 e 不在同一层。

B

只识别出 g=12 与 e 同层就停止思考了,漏掉了 f=10。e 和 f 是第 5 步直接合并出来的兄弟,它们必然同层;选 B 的人没有把"哪些叶子在最后两步才被合并进去"这条主线理清。

C

把 d 和 e 当成同层的同时承认 f 同层,问题在 d——d 在第 3 步就和"abc 子树根"合并掉了,比 e、f 早两步进入树。早合并意味着深度更深(先出现就一直在底部往上抬),所以 d 比 e 深,和 e 同层。

总解析

哈夫曼构造(每次取最小两数合并,把它们作为新结点的左右孩子):

取出两数合并出当前森林中的根(权值)
01(a), 2(b), 4(c), 5(d), 8(e), 10(f), 12(g)
11, 23[ab]3, 4(c), 5(d), 8(e), 10(f), 12(g)
23, 47[abc]5(d), 7, 8(e), 10(f), 12(g)
35, 712[abcd]8(e), 10(f), 12, 12(g)
48, 1018[ef]12, 12(g), 18
512, 1224[abcdg]18, 24
618, 2442[根]42

画出最终哈夫曼树(根记为深度 0):

                    42
                  /    \
                18      24
               /  \    /  \
              e    f  12   g
                       /\
                      d  7
                         /\
                        3  c
                       /\
                      a  b

逐叶子核对深度

叶子权值深度
a15
b25
c44
d53
e82
f102
g122

与 e 同深度(深度 2)的叶子是 f 和 g

最终答案是 D

最后更新:

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

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