课后题 数据结构 ds.05.05.01 解答题
第 108 题

设给定权集 W={5,7,2,3,6,8,9},构造关于 W 的一棵哈夫曼树,并求其带权路径长度 WPL。

[tag_link]

参考答案

依次合并两个最小权值:2+3=5,5+5=10,6+7=13,8+9=17,10+13=23,17+23=40。因此 WPL=5+10+13+17+23+40=108。

推导过程

叶深复核:2、3 的深度为 4,原权值 5、6、7 的深度为 3,8、9 的深度为 2;故 WPL=(2+3)×4+(5+6+7)×3+(8+9)×2=108。左右子树可以互换,不影响 WPL。

复杂度与边界

最小堆构造时间 O(n log n)、空间 O(n);单权值时 WPL=0。

易错点

每次都要把新权值放回集合;WPL 是各次合并权值之和,不是叶权值之和。

评分要点

  • 写全六次合并
  • 得出 WPL=108
  • 能用叶深或合并和复核