6.6 Huffman树及其应用 最优二叉树(Huffman) 如何构造最优二叉树 如何求哈夫曼编码 一、哈夫曼树(最优树)的定义 结点的路径长度:从根结点到该结点的路径上分支的 数目。 树的路径长度:树中每个结点的路径长度之和。 (结点)带权路径长度:结点的路径长度*结点的权=li*wi 树的带权路径长度:树中所有叶结点的带权路径长度之和WPL(T)= 设K={k1,k2,…kn},它们的权W={w1,w2,…,wn}, 构造以k1,k2,…kn为叶结点的二叉树,使得 WPL= 为最小,则称之为“最优二叉树”。 一、哈夫曼树(最优树)的定义 例 W={1,2,4,6} ,可构造出如下的二叉树: 1 2 4 6 1 2 4 6 6 4 1 2 WPL =(1+2+4+6)*2=26 WPL =1+2*2+(4+6)*3=35 WPL =6+4*2+(1+2)*3=23 (1) (2) (3) 根据定义求Huffman树的方法是:对给定的n个叶子结点(外部结点),构造出全部二叉树并求出其WPL,然后找出WPL最小的树。 当n较大时,显然这种方法是不可取的。 二、构造huffman树 算法思想: 1. 根据权值{w1 , w2 ,…, wn}构造n个二叉树F={T1 , T2 , …, Tn},其中 Ti中是只含权值为
原创力文档

文档评论(0)