- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 最优二叉树:设二叉树T有t片树叶,分别带权为 w1,w2,…,wt,(wi为实数,i=1,2,…, t), 其中L(wi)为带权wi的树叶的通路长度。 在所有带权w1,w2,…,wt的二叉树中,带权最小的二叉树称为最优二叉树。 一、求最优二叉树的Huffman算法 下面三棵二叉树,均带权1,3,4,5,6, 6 3 4 5 1 (T1) 1 3 6 4 5 (T2) 1 6 5 4 3 (T3) 但W(T1) = 47,W(T2) = 54,W(T3) = 42。 求最优二叉树的Huffman算法: 给定实数w1,w2,…,wt ,且w1?w2?…? wt (1) 连接w1,w2为权的两片树叶,得一分支点,其权为w1+w2。 (2) 连接w1+w2, w3 ,…,wt中选出两个最小的权,连接它们对应的顶点(不一定都是树叶),得分支点及所带的权。 (3) 重复(2),直到形成 t–1个分支点,t片树叶为止。 例1 求带权为1,3,4,5,6的最优二叉树T。 解: ? ? ? 4 1 3 1 3 4 4 8 1 3 4 4 8 5 6 11 1 3 4 4 8 5 6 11 19 由上图可知:W(T) = 42 5 10 例2 求带权为2,3,5,7,8,9的最优二叉树。 ? ? ? 5 2 3 2 3 5 2 3 5 5 10 7 8 15 2 15 3 5 5 10 7 8 19 9 ? 2 3 5 5 10 19 7 8 15 9 34 由上图知:W(T)=2?4+3?4+5?3+9?2+7?2+8?2=83 解: 问题的引出 传递信息中,可用5位01序列表示一个英文字母,因每个字母的使用频率不一样,人们希望用较短的序列表示常用字母,但产生问题: e:00,t:01 ,q:0001,则0001为q还是为et。 二、最优二叉树的应用 前 缀:设? = ?1?2…?n–1?n是长度为n的符号串,称其子串?1, ?1?2 ,…, ?1?2 ,…, ?n–1分别为? 的长度为1,2,…, n–1的前缀。 前缀码:设B = {?1 ,?2,…,? m}为一个符号串集合,如果对于任意的?i, ?j?B,i?j,它们互不为前缀,则称B是前缀码。 如果?i全是长度为2的符号串,则B为 2元前缀码。 2元树与前缀码的关系:由一棵2元树T,如果T有 t片树叶,则可得到t个符号串组成的前缀码。 产生方法: (1) 将T的每个分支点关联的2条边,左边标上0,右边标上1。 (2) 从树根到每片树叶的通路上标注的数字组成一个符号串,记在树叶处。 若某分支点处只有一个儿子,对应的边标上0或1均可; 这样便得到t个符号串?1 ,?2,…,? t组成的集合B为前缀码。 *
文档评论(0)