|
6.8.2 最优树的构造方法
赫夫曼最早给出了一个构造最优树的带有一般规律的算法,俗称赫夫曼算法。现以最优二叉树为例叙述如下:
(1) 根据给定的 n 个权值{,,…},构成
n 棵二叉树的集合 F={,,…,},其中每棵二叉树
中只有一个带权为
的根结点,其左右子树均空。
(2) 在 F 中选取两棵根结点的权值最小的树作为左右子树,构造一棵新的二叉树,且置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和。
(3) 在 F 中删除这两棵树,同时将新得到的二叉树加入 F 中。
重复(2)和(3),直到 F 只含一棵树为止。这棵树便是所求的赫夫曼树。
|
|
例如,对5个权值 {5,6,2,9,7} 构造最优二叉树的过程如动画所示。 |
|