- 1、本文档共98页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 4.7.5 树的应用 1、集合的表示 集合是一种常用的数据表示方法,对集合可以作多种操作,假设集合S由若干个元素组成,可以按照某一规则把集合S划分成若干个互不相交的子集合,例如,集合S={1,2,3,4,5,6,7,8,9,10},可以被分成如下三个互不相交的子集合: S1={1,2,4,7} S2={3,5,8} S3={6,9,10} 集合{S1,S2,S3}就被称为集合S的一个划分。 此外,在集合上还有最常用的一些运算,比如集合的交、并、补、差以及判定一个元素是否是集合中的元素,等等。 * 用树中的一个结点表示集合中的一个元素,树结构采用双亲表示法存储。例如,集合S1、S2和S3可分别表示为图(a)、(b)、(c)所示的结构。将它们作为集合S的一个划分,存储在一维数组中,如下图所示。 * 2.集合的运算 * * 4.6 最优二叉树 4.6.1问题的引入 一个将百分制转换为五级分制的判定程序可以用以下条件语句完成: if (a60) b=”bad”; else if (a70) b=”pass” else if (a80) b=”general” else if (a90) b=”good” else b=”excellent”; 判定过程如下图所示。 * 判定方法是多样的,也可以采用下面的判定过程来完成。 * 假设有10000个输入数据,若按图(a)的判定过程进行操作,则总共需进行31500次比较;而若按图(c)的判定过程进行操作,则总共仅需进行22000次比较。 如果输入量很大,则应考虑上述程序的质量问题,即其操作所需要的时间。因为在实际中,学生的成绩在五个等级上的分布是不均匀的,假设其分布规律如下表所示: 分数 0-59 60-69 70-79 80-89 90-100 比例数 0.05 0.15 0.40 0.30 0.10 * 几个基本概念: 1.结点的权 2.带权路径长度 设二叉树具有n个带权值的叶结点,那么从根结点到各个叶结点的路径长度与相应结点权值的乘积之和叫做二叉树的带权路径长度。记为: WPL= Wk·Lk 其中Wk为第k个叶结点的权值,Lk 为第k个叶结点的路径长度。 * 在给定一组具有确定权值的叶结点,可以构造出不同的带权二叉树。 下图中的每棵二叉树都有4个结点,且权值相同,但其带权路径长度不同,分别为: (a)WPL=1×2+3×2+5×2+7×2=32 (b)WPL=1×3+3×3+5×2+7×1=29 (c)WPL=1×2+3×3+5×3+7×1=33 (d)WPL=7×3+5×3+3×2+1×1=43 (e)WPL=7×1+5×2+3×3+1×3=29 * 3.哈夫曼(Haffman)树: 哈夫曼树也称最优二叉树。由上面的例子可见,由相同权值的一组叶子结点所构成的二叉树可能有不同的形态和不同的带权路径长度,具有最小带权路径长度的二叉树称为哈夫曼(Haffman)树,也称最优二叉树。 最优二叉树在实际问题中有很重要的应用。 * 4.6.2 最优二叉树的构造 1、构造方法 哈夫曼(Haffman)依据这一特点提出了一种方法,这种方法的基本思想是: (1)由给定的n个权值{W1,W2,…,Wn}构造n棵只有一个叶结点的二叉树,从而得到一个二叉树的集合F={T1,T2,…,Tn}; (2)在F中选取根结点的权值最小和次小的两棵二叉树作为左、右子树构造一棵新的二叉树,这棵新的二叉树根结点的权值为其左、右子树根结点权值之和; (3)在集合F中删除作为左、右子树的两棵二叉树,并将新建立的二叉树加入到集合F中; (4)重复(2)(3)两步,当F中只剩下一棵二叉树时,这棵二叉树便是所要建立的哈夫曼树。 * 下图给出前面提到的叶结点权值集合为W={1,3,5,7}的哈夫曼树的构造过程。可以计算出其带权路径长度为29。 * 2、算法实现 * 4.6.3 最优二叉树的应用--哈夫曼编码 利用哈夫曼树可以对字符编出效率最高的编码,称为的哈夫曼码。 1、编码方法 (1) 设需要编码的字符集合为{d1,d2
您可能关注的文档
- 智能材料课件作者陈英杰6第六章节.ppt
- 智能材料课件作者陈英杰7第七章节.ppt
- 数控机床编程技术第2版课件作者李海梅第六章节.ppt
- 数控机床编程技术第2版课件作者李海梅第七章节.ppt
- 智能建筑概论课件作者陈志新1_第8章节智能建筑物业管理.ppt
- 数控机床编程技术第2版课件作者李海梅第四章节.ppt
- 微型计算机控制技术课件作者黄勤第3章节__微型计算机控制系统的常用控制.ppt
- 智能建筑供配电与照明课件作者陈小荣任务引入供配电与照明自动化.ppt
- 微型计算机控制技术课件作者黄勤第4章节__工控机的抗干扰.ppt
- 微型计算机控制技术课件作者黄勤第7章节__分散型控制系统及现场总线控制系统.ppt
文档评论(0)