第六章 树和二叉树演示精选文档.ppt
《第六章 树和二叉树演示精选文档.ppt》由会员分享,可在线阅读,更多相关《第六章 树和二叉树演示精选文档.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章 树和二叉树演示树和二叉树演示本讲稿第一页,共二十页第六章第六章 树和二叉树树和二叉树 6.7 6.7 哈夫曼树及应用哈夫曼树及应用 6.7.1 哈夫曼树及构造 6.7.1 哈夫曼编码 本讲稿第二页,共二十页6.7 6.7 哈夫曼树及应用哈夫曼树及应用6.7.1 6.7.1 哈夫曼树及构造哈夫曼树及构造1 哈夫曼树哈夫曼树的概念的概念路径:从一个祖先结点到子孙结点之间的分支构成这两个结点间的路径;路径长度:路径上的分支数目称为路径长度;结点的权:根据应用的需要可以给树的结点赋权值;结点的带权路径长度:从根到该结点的路径长度与该结点权的乘积;树的带权路径长度=树中所有叶子结点的带权路
2、径之和;通常记作 WPL=wi Li 哈夫曼树:假设有n个权值(w1,w2 ,wn ),构造有n个叶子结点的二叉树,每个叶子结点有一个 wi 作为它的权值。则带权路径长度最小的二叉树称为哈夫曼树。哈夫曼树。本讲稿第三页,共二十页6.7 6.7 哈夫曼树及应用哈夫曼树及应用2 应用举例应用举例在求得某些判定问题时,利用哈夫曼树获得最佳判定算法。例 编制一个将百分制转换成五分制的程序。最直观的方法是利用if语句来的实现。可用二叉树描述判定过程。参见课本P145 图6.23(a)。如果这个程序很不经常使用,或要转换的分数不多,不必考虑该程序效率,我们可以按照这个流程编程。可是如果该程序经常要使用或数
3、据量很大。比如对北京市几十万小学生的分数进行转换,在这种情况下,要考虑转换程序的效率。设有10000个百分制分数要转换,设学生成绩在5个等级以上的分布如下:分数 0-59 60-69 70-79 80-89 90-100比例数 0.05 0.15 0.40 0.30 0.10本讲稿第四页,共二十页6.7 6.7 哈夫曼树及应用哈夫曼树及应用按图的判定过程,转换一个分数所需的比较次数=从根到对应结点的路径长度。转换10000个分数所需的总比较次数=10000(0.05 1+0.15 2+0.4 3+0.3 4+0.1 4)若将学生成绩在5个等级以上的分布比例看作描述判定过程二叉树叶子结颠点权值,
4、(0.05 1+0.15 2+0.4 3+0.3 4+0.1 4)正是该二叉树的带权路径长度。可见要想获得效率较高的转换程序,可构造以分数的分布比例为权值的哈夫曼树。40403030606015155 5 101015153030100100本讲稿第五页,共二十页6.7 6.7 哈夫曼树及应用哈夫曼树及应用3 哈夫曼树的构造哈夫曼树的构造构造哈夫曼树的步骤:1根据给定的n个权值,构造n棵只有一个根结点的二叉树,n个权值分别是这些二叉树根结点的权。设F是由这n棵二叉树构成的集合2在F中选取两棵根结点树值最小的树作为左、右子树,构造一颗新的二叉树,置新二叉树根的权值=左、右子树根结点权值之和;3从
5、F中删除这两颗树,并将新树加入F;4重复 2、3,直到F中只含一颗树为止;本讲稿第六页,共二十页6.7 6.7 哈夫曼树及应用哈夫曼树及应用40403030606015155 5 10101515303040403030606015155 5 101015153030100100例:构造以W=(5,15,40,30,10)为权的哈夫曼树。30305 5 1010151540404040303015155 5 1010151540403030303015155 5 10101515本讲稿第七页,共二十页6.7 6.7 哈夫曼树及应用哈夫曼树及应用6.7.26.7.2 哈夫曼编码哈夫曼编码 哈夫曼
6、树除了能求解最优判定问题解,还用于其他一些最优问题的求解。这里介绍用哈夫曼树求解数据的二进制编码。在进行数据通讯时,涉及数据编码问题。所谓数据编码就是数据与二进制字符串的转换。例如:邮局发电报,发送方将原文转换成二进制字符串,接收方将二进制字符串还原成原文。原文 电文(二进制字符串)原文例 要传输的原文为ABACCDA设ABCD的编码为A;00B;01C:10D:11发送方:将ABACCDA 转换成 00010010101100接收方:将 00010010101100 还原为 ABACCDA本讲稿第八页,共二十页6.7 6.7 哈夫曼树及应用哈夫曼树及应用 在数据输传时,为省节费用总希望传输的
7、二进制串尽可能短。可利用二叉树设计不等长编码:例 某通讯系统只使用8种字符a、b、c、d、e、f、g、h,其使用频率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,利用二叉树设计一种不等长编码:1)构造以 a、b、c、d、e、f、g、h为叶子结点的二叉树;2)将该二叉树所有左分枝标记1,所有右分枝标记0;3)从根到叶子结点路径上标记作为叶子结点所对应字符的编码;a ac cb bd dg gf fe eh ha:0000b:0001c:0010d:0011e:010f:011g:10h:11本讲稿第九页,共二十页6.7 6.7 哈夫曼树及应用哈夫曼树及应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 树和二叉树演示精选文档 第六 二叉 演示 精选 文档
限制150内