26-根树.pptVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
26-根树

根树 离散数学 第26讲 上一讲内容的回顾 树的定义 树的连通性质 树中边和顶点数量之间的关系 生成树 最小生成树与Kruskal算法 根树 根树的基本概念 各种特殊的根树 有序二叉树 Huffman树与二进编码 二叉树的遍历 中序、先序和后序 逆波兰表示 根树的定义 定义:底图为树的有向图称为有向树。 定义:若n(n?2)阶有向树恰含一个入度为0的顶点,其它顶点入度均为1,则该有向树称为根树,那个入度为0的顶点称为根。 根树中的有向通路 若v0是根树T中唯一的入度为0的顶点,则对T中任意其它顶点vn ,存在唯一的有向v0vn-通路,但不存在vnv0-通路。 根树的图形表示 边上的方向用约定的位置关系表示 根树与家族关系 用根树容易描述家族关系,反之,家族关系术语被用于描述根树中顶点之间的关系。 进一步限定根树性质的几个定语 有序:同层中每个顶点排定次序 r叉:每个分支点至多有r个儿子 r叉正则:每个分支点恰好有r个儿子 完全:每个叶的层数恰等于树高 注意:完全正则 r叉树共有 (rk+1-1)/(r-1)个顶点(k是树高) 二叉树的子树 定义:设T是根树,T中任一顶点v及其所有后代的导出子图显然也是根树(以v为根),称为T的子树。 有序二叉树的子树分为左子树和右子树 即使不是正则二叉数,也可以 分左、右,必须注意顶点位置 二叉搜索树 二叉搜索树满足下列条件: 每个顶点有一个唯一的标号,该标号均取自一个全序集。 若u是树中任意的顶点,则: u 的左子树中任意顶点的 标号小于u 的标号。 u 的右子树中任意顶点的 标号大于u 的标号。 (高度)平衡二叉树 (高度)平衡二叉树中任意顶点左右子树高度的差不大于1。 假设(高度)平衡二叉树T 中顶点个数为n, T 的高度为h, 则h?O (logn)。 高度为h 的(高度)平衡二叉树顶点数不小于: 有序二叉树 任何有序树均可化为有序二叉树 最优二叉树 若T是二叉树,且每个叶v1,v2,…,vt带有数值权w1,w2,…wt, 则二叉树T的权W(T)定义为: ?ti=1wil(vi), 其中:l(vi)表示vi的层数。 具有相同权序列的二叉树中权最小的一个称为最优二叉树。 不等长编码 如何从信号流中识别字符 等长度编码 vs. 不等长度编码 例子:对包含{a(45),b(13),c(12),d(16),e(9),f(5)}6个字符的10万个字符的数据文件编码每个字符后面的数字表示该字符出现的频率(%) 编码方案一:a(000), b(001), c(010), d(011), e(100), f(101); 则文件总长度30万字位 编码方案二:a(0), b(101), c(100), d(111), e(1101), f(1100); 则文件总长度22.4万字位,空间节省四分之一。 不等长编码的分隔 如何从信号流中识别不等长编码表示的字符 显式表示长度:专用位或特定结束信号 匹配的唯一性 如果符号串?可以表示成符号串?1和?2的并置,则?1称为?的一个前缀。(注意:?1和?2可以是空串。) 设A={?1,?2,…,?m}是符号串的集合,且对任意?i,?j?A, 若i?j, ?i与?j互不为前缀,则称A为前缀码。 若A中的任意串?i只含符号0, 1, 则称A是二元前缀码。 用二叉树生成二元前缀码 生成方法: 给边标号:对任意非叶顶点,对其出边标上号,左为0,右为1。 给叶编号:根据根树性质,从根到每个叶存在唯一的有向通路,构成该通路的边的标号依次并置,所得作为该叶的编号。 显然:给定一棵二叉正则树, 可以产生唯一的二元前缀码。 最佳前缀码 问题:二进前缀码A={?1,?2,…,?m}表示m个不同的字母,如果各字母使用频率不同,如何设计编码方案可以使总传输量最少。 基本思想:使用频率高的字母用尽量短得符号串表示。 问题的解:若用频率(相对值)作为叶顶点的权,最佳二进前缀码对应的二叉树应该是最优二叉树。 求最优二叉树的算法 Huffman算法 输入:实数序列w1,w2,…,wt, 不妨设w1,w2是其中最小的两个实数。 输出:具有t个树叶,其权序列为w1,w2,…,wt的最优二叉树。 过程: 作t个叶顶点v1,v2,…vt,其相应的权分别是w1,w2,…,wt。加入分支点vt+1, 使v1,v2是vt+1的左、右子树。在上述权序列中用wt+1,= w1+w2代替w1,w2两项。 考虑“当前的”w序列, 选择其中最小的两项,设其对应的顶点是vi,vj, 加分支点vt+k, 使以vi,vj为根的子树为其左、右子树。 重复第2步,直至加入t-1个点。 注意:Huffman算法得到的结果可能

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档