- 1、本文档共143页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树与叉树
例:已知某系统在通信联络中可能出现八种字符,频率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,试设计哈夫曼编码。 2.中序遍历 若森林不空,则可依下列次序进行遍历: (1) 中序遍历第一棵树中的子树森林; (2) 访问森林中第一棵树的根结点; (3) 中序遍历除去第一棵树之后剩余的树构成的森林。 即:依次从左至右对森林中的每一棵树进行后根遍历。 树的遍历和二叉树遍历的对应关系 ? 先根遍历 后根遍历 树 二叉树 森林 先序遍历 先序遍历 中序遍历 中序遍历 6.8 哈夫曼树与哈夫曼编码 最优树的定义 如何构造最优树 哈夫曼树应用 树的路径长度定义为: 树中每个结点的路径长度之和。 结点的路径长度定义为: 从根结点到该结点路径上的分支数目。 一、最优树的定义 结点的带权路径长度定义为: 该结点到树根之间的路径长度与该结点上的权值的乘积。 树的带权路径长度定义为: 树中所有叶子结点的带权路径长度之和。 假设树上有 n 个叶子结点,且每个叶子结点上带有权值,则树的带权路径长度定义为树中所有叶子结点的带权路径长度之和,通常记作 其中lk为带权wk的叶子结点的带权路径长度。 在所有含 n 个叶子结点,并带有相同权值的 m 叉树中,必存在一棵其带权路径长度取最小值的树,称为“最优树”。 7 9 2 7 5 4 9 2 WPL(T)= 7?2+5?2+2?3+4?3+9?2 =60 WPL(T)= 7?4+9?4+5?3+4?2+2?1 =89 5 4 对应权值 根据给定的 n 个权值 {w1, w2, …, wn}, 构造 n 棵二叉树的集合 F = {T1, T2, … , Tn}, 其中每棵二叉树中均只含一个带权值为 wi 的根结点,其左、右子树为空树。 (1) 采用哈夫曼算法 二、如何构造最优树(哈夫曼树) 在 F 中选取其根结点的权值为最小的两棵二叉树,分别作为左、右子树构造一棵新的二叉树,并置这棵新的二叉树根结点的权值为其左、右子树根结点的权值之和。 (2) 从F中删去这两棵树,同时加入 刚生成的新树; 重复 (2) 和 (3) 两步,直至 F 中只 含一棵树为止。 (3) (4) 9 例如: 已知权值 W={ 5, 6, 2, 9, 7 } 5 6 2 7 5 2 7 6 9 7 6 7 13 9 5 2 7 6 7 13 9 5 2 7 9 5 2 7 16 6 7 13 29 0 0 0 0 1 1 1 1 00 01 10 110 111 哈夫曼编码 三、哈夫曼树应用 1、判定问题 在实际应用中用树型结构来解决判定问题时,利用哈夫曼树可以得到最佳判定算法。 例:编制一个将百分制转换成五级分制的算法。 if (a60) b=’E’; else if (a70) b=’D’; else if (a80) b=’C’; else if (a90) b=’B’; else b=’A’; 例:编制一个将百分制转换成五级分制的算法。 0.1 0.3 0.4 0.15 0.05 比例数 90-100 80-89 70-79 60-69 0-59 分数 利用哈夫曼树可以构造一种不等长的二进制编码,并且构造所得的哈夫曼编码是一种最优前缀编码,即使所传电文的总长度最短。 2、前缀编码指的是,任何一个字符的编码都不是同一字符集中另一个字符的编码的前缀。 1.领会树和二叉树的类型定义,理解树和二叉树的结构差别。 2.熟记二叉树主要特性,并理解它们的证明方法。 3.熟练掌握二叉树的各种遍历算法,并能灵活运用遍历算法实现其它应用操作。 4.熟练掌握二叉树和树的各种存储结构及其建立的算法;理解二叉树线索化的实质。 5.了解最优树的特性,掌握建立最优树和哈夫曼编码的方法。 学习总结 对线索链表中结点的约定: 在二叉链表的结点中增加两个标志域,并作如下规定: 若该结点的左子树不空, 则lchild域的指针指向其左子树, 且左标志域的值为“指针 link”; 否则,lchild域的指针指向其“前驱”, 且左标志的值为“线索 thread” 。 若该结点的右子树不空, 则rchild域的指针指向其右子树, 且右标志域的值为 “指针 link
您可能关注的文档
最近下载
- 附着式抱杆组塔施工方案(外抱杆).doc VIP
- 2025全国普通高等学校体育单招试题语文试卷.docx VIP
- 农村教师公开选调进城考试模拟试题1(初中地理·附参考答案).docx
- 电子式绝缘电阻测试仪讲解文档.ppt VIP
- 驻校教官培训课件.pptx
- GBT 21237-2018 石油天然气输送管用宽厚钢板.pdf
- 安徽泾县国有资产投资运营公司、泾县中小企业融资招聘笔试题库2025.pdf
- 安徽宣城市泾县国有资本投资运营控股集团有限公司招聘笔试题库2025.pdf
- 安徽宣城宁国市国有资产投资运营有限公司招聘笔试题库2023.pdf VIP
- 安徽芜湖市国有资本投资运营有限公司招聘笔试题库2022.pdf VIP
文档评论(0)