树与叉树.pptVIP

  1. 1、本文档共143页,可阅读全部内容。
  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文档。上传文档
查看更多
树与叉树

例:已知某系统在通信联络中可能出现八种字符,频率分别为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

文档评论(0)

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

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

1亿VIP精品文档

相关文档