- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十六章树重点讲义
16.3 根树及其应用 定义16.8 设T为一棵根树, ?v?V(T), 称v及其后代的导出子图Tv为T的以v为根的子树。 在二叉正则有序树中, 其每个分支点的两个儿子所导出的子树分别称为其左子树和右子树。 在所有的k叉树中, 二叉树最为重要。下面介绍一些二叉树的应用。 定义16.9 设二叉树T有k个叶结点v1, v2, …, vk, 其权分别为w1, w2, …, wk, 称W(T)= ?i=1..kwi×L(vi)为T的权, 其中L(vi)是vi的层数; 在所有有k个叶结点、带权w1, w2, …, wk的二叉树中, 权最小的二叉树称为最优二叉树。 16.3 根树及其应用 下面三棵二叉树T1, T2和T3都是带权为2,2,3,3,5的二叉树。 根据树权W(T)的定义, 计算出它们的权分别为: W(T1) = 2*2 + 2*2 + 3*3 + 5*3 + 3*2 = 38 W(T2) = 3*4 + 5*4 + 3*3 + 2*2 + 2*1 = 47 W(T3) = 3*3 + 3*3 + 5*2 + 2*2 + 2*2 = 36 16.3 根树及其应用 对任意带权的二叉树, 如何求出其最优树是一个值得研究的问题。 下面介绍Huffman算法来解决该问题。 Huffman算法描述如下: (1) 给定k个非负实数w1, w2, …, wk, 令S = { w1, w2, …, wk }; (2) 在S中选择两个最小的权wi和wj, 得一个分支点, 其权为wij = wi+wj; (3) 画线wij, wi和wij, wi; (4) 在S中删去权wi和wj, 然后再加入新的权wij; (5) 重复步骤(2) ~ (4), 直到S中只有一个权值为止。 16.3 根树及其应用 例16.4 求带权2,2,3,3,5的最优二叉树。 解 利用Huffman算法求解最优二叉树的全过程如下: 显然, 树(d)是最优树, W(T)=34。 由此可知: 右边三棵树都不是最优二叉树。 2,2,3,3,5 3,3,4,5 4,5,6 6,9 16.3 根树及其应用 在通信中, 用二进制编码表示符号。例如: 可用2位二进制编码00, 01, 10和11分别表示A, B, C和D, 称这种表示法为等长码表示法。 在传输过程中, 若A, B, C和D出现的频率大体相同, 用等长码表示是很好的方法, 但当它们出现的频率相差悬殊时, 为提高传输效率, 可寻找非等长的编码。 定义16.10 设a1a2…an-1an是长度为n的符号串, 称其子串a1, a1a2, …, a1a2…an-1分别为该符号串的长度为1, 2, …, n-1的前缀; 设A = {b1, b2, …, bm}为一个符号串集合, 若对于?bi, bj?A, i ? j, bi和bj互不为前缀, 则称A为前缀码; 若符号串bi(i=1..m)中只出现0和1 , 则称A为二元前缀码; 16.3 根树及其应用 { 1, 00, 011, 0101, 01001, 01000 }为前缀码, { 1, 00, 011, 0101, 0100, 01001, 01000 }不是前缀码, 因为0100既是01001又是01000的前缀。 研究发现: 可用二叉树产生二元前缀码。 设T是具有k个叶结点的二叉树, v为T的分支点: 设vi是T的一个叶结点, 从树根到vi的通路上各边的标号(0或1), 按通路上边的顺序组成的符号串放在vi处, 则k个叶结点处k个符号串组成的集合为二元前缀码。 由做法可知: 叶结点vi处符号串的前缀均在vi所在通路上的顶点处达到, 因此, 所得符号串集合必为前缀码。 若T是正则二叉树, 则由T产生的前缀码是唯一的。 若v只有一个儿子, 则在连接v的边上可标0或1; 若v有两个儿子, 在连接v的左边上标0, 右边上标1; 右图(a)为二叉树, 将连接每个分支点的两条边分别标上0和1, 见下左图(a)所示, 产生的前缀码为{ 11, 01, 000, 0010, 0011 }。 若将一个儿子的分支点引出的边标上0, 则产生前缀码为{ 10, 01, 000, 0010, 0011 }。 上右图(b)是二叉正则树, 它只能产生唯一的前缀码。标定后二叉正则树为下右图(b)所示, 前缀码为{ 01, 10, 11, 000, 0010, 0011 }。 16.3 根树及其应用 定理16.6 由一棵给定的二叉正则树, 可以产生出唯一的一个二元前缀码。 例16.5 求出下图两棵二叉树所产生的二元前缀码。 解 16.3 根树及其应用 上面例子产生出来前缀码都可传输5个符号, 比如: A, B, C, D和E都不会传错, 但当这些字母出现频率不同时, 哪一个符号串传
您可能关注的文档
最近下载
- 水利水电工程单元工程施工质量验收评定表填表说明与示例(样表)2025年版(全).doc VIP
- 人教PEP版(一起)(2024)英语二年级上册英语Unit 3 Helpful hands 教案.docx
- 2025第三届全国技术技能大赛江西选拔赛制造业数字化转型赛项技术方案.pdf VIP
- 实验员考试试题及答案.doc VIP
- 标准起草编制说明范文.pdf VIP
- CRISPR-Cas9基因编辑技术.pptx VIP
- (高清版)B-T 17421.1-2023 机床检验通则 第1部分在无负荷或准静态条件下机床的几何精度.pdf VIP
- 2025年纪检监察应知应会试题库及参考答案.docx VIP
- 球馆充值协议书范本.docx VIP
- 2022年9月17日全国事业单位联考D类《综合应用能力》小学真题及答案.pdf VIP
原创力文档


文档评论(0)