离散数学-专题7:树解析.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * 根树实例 根树的画法——树根放上方,省去所有有向边上的箭头 * 家族树与根子树 定义7.7 T 为非平凡根树 (1) 祖先与后代 (2) 父亲与儿子 (3) 兄弟 定义7.8 设v为根树T中任意一顶点,称v及其后代的导出子 图为以v为根的根子树. * 根树的分类 (1) T 为有序根树——同层上顶点标定次序的根树 (2) 分类 ① r 叉树——每个分支点至多有r 个儿子 ② r 叉有序树——r 树是有序的 ③ r 叉正则树——每个分支点恰有r 个儿子 ④ r 叉正则有序树 ⑤ r 叉完全正则树——树叶层数相同的r叉正则树 ⑥ r 叉完全正则有序树 r叉正则树的结论 定理 设有正则r叉树,其树叶数为t,分枝数为i,则(r-1)i=t-1 证明 假设把r叉树当作是每局有r位选手参加比赛的单淘汰赛计划表,树叶数为t表示参加比赛的选手数,分枝点数为i表示比赛的局数 因为每局比赛将淘汰(r-1)位选手,比赛的结果共淘汰(r-1)i位选手,最后剩下一个冠军,因此(m-1)i+1=t * * 定义7.9 设2叉树T 有t片树叶v1, v2, …, vt,权分别为w1, w2, …, wt,称 为T 的权,其中l(vi)是vi 的层数. 在所有有t片树叶,带权w1, w2, …, wt 的2叉树中,权最小的2叉树称为最优2叉树. 最优二叉树 求最优树的算法—— Huffman算法 给定实数w1, w2, …, wt,且w1?w2?…?wt. (1) 连接权为w1, w2的两片树叶,得一个分支点,其权为w1+w2. (2) 在w1+w2, w3, …, wt 中选出两个最小的权,连接它们对应的顶点(不一定是树叶),得新分支点及所带的权. (3) 重复(2),直到形成 t?1个分支点,t片树叶为止. * 例 5 求带权为1, 1, 2, 3, 4, 5的最优树. 解题过程由图给出,W(T)=38 * 最佳前缀码 定义7.10 设?1, ?2, …, ?n-1, ?n是长度为 n 的符号串 (1) 前缀——?1, ?1?2, …, ?1?2…?n?1 (2) 前缀码——{?1, ?2, …, ?m}中任何两个元素互不为前缀 (3) 二元前缀码——?i (i=1, 2, …, m) 中只出现两个符号,如0与1. {1,00,011,0101,01001,01000}为前缀码。而{1,00,011,0101,0100,01001,01000}不是前缀码,因为0100既是01001又是01000的前缀。 如何产生二元前缀码? 定理7.6 一棵2叉树产生一个二元前缀码. 推论 一棵正则2叉树产生惟一的前缀码(按左子树标0,右子树标1) * 图所示二叉树产生的前缀码为 { 00, 10, 11, 011, 0100, 0101 } * 用Huffman算法产生最佳前缀码 例6 在通信中,八进制数字出现的频率如下: 0:25% 1:20% 2:15% 3:10% 4:10% 5:10% 6:5% 7:5% 求传输它们的最佳前缀码,并求传输10n(n?2)个按上述比 例出现的八进制数字需要多少个二进制数字?若用等长的 (长为3)的码字传输需要多少个二进制数字? * 解 用100个八进制数字中各数字出现的个数,即以100乘各频率为权,并将各权由小到大排列,得w1=5, w2=5, w3=10, w4=10, w5=10, w6=15, w7=20, w8=25. 用此权产生的最优树如图所示. 求最佳前缀码 01-----0 11-----1 001-----2 100-----3 101-----4 0001-----5 00000-----6 00001-----7 W(T)=285, 传10n(n?2)个 用二进制数字需 2.85?10n个, 用等长码需 3?10n个数字. * 波兰符号法与逆波兰符号法 行遍或周游根树T——对T的每个顶点访问且仅访问一次. 对2叉有序正则树的周游方式: ① 中序行遍法——次序为:左子树、根、右子树 ② 前序行遍法——次序为:根、左子树、右子树 ③ 后序行遍法——次序为:左子树、右子树、根 对图所示根树按中序、前序、 后序行遍法访问结果分别

您可能关注的文档

文档评论(0)

335415 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档