赫夫曼树困惑点
在学习赫夫曼树中,课本上举了一个例子,其中新权值和原权集有重复了,书上只讲解了赫夫曼树的图,缺少了解释。
今天整理了整理赫夫曼树的基本资料
例:设给定权集w={5,29,7,8,14,23,3,11},构造关于w的一棵赫夫曼树,并求其加权路径长度WPL。
在构造赫夫曼树的过程中,在第二次选择两棵权值最小的树时,最小的两个作为左右子树的分别是7和8,而此时的8有两种,一种是原来权集中的,另一种是经过第一次构造出的新的二叉树的根的权值。(见下图)
所以,7与不同的8结合,便生成了不同的赫夫曼树,但是它们的WPL是相同的。计算过程如下:
树1:WPL=2×23+3×(8+11)+2×29+3×14+4×7+5×(3+5)=271
树2:WPL=2×23+3×11+4×(3+5)+2×29+3×14+4×(7+8)
=271
若在构造赫夫曼树时,有诸如:“请按左子树根节点的权小于等于右子树根节点的权的次序构造”等的要求,则所求的赫夫曼树会有所不同,每个字符的赫夫曼代码也有所不同。应该根据具体的要求,去设计符合条件的赫夫曼树。