构造赫夫曼树(最优二叉树)

例如,有权值分别为 5、10、15、20、25、40的结点,根据以上算法构造出一个哈夫曼树。

(1) 取这六个树中最小的两个树5、10连成一个二叉树,其权值为15;此时森林里的树变为15(5、10)、15、20、25、40。

(2) 取这五个树中最小的两个树(15(5、10)、15),构成一个新的二叉树30((5、10)、15);此时森立里的树变为20、25、30((5、10)、15)、40。

(3) 继续上述过程,得到一个新的二叉树45(20、25);此时的森林变为30((5、10)、15)、40、45(20、25)。

(4) 继续得到二叉树70((5、10)、15)、40);则森林里只剩下两棵树:70((5、10)、15)、40)与45(20、25)。

(5) 最后将这两棵二叉树合并成为一棵二叉树115(((5、10)、15)、40)、(20、25)),完成了哈夫曼树的构造。

(6) 计算WPL=(5+10)*4+15*3+(20+25)*2+40*2=275。

 

原文地址:https://www.cnblogs.com/liuzhenping/p/7551380.html