1.3 树结构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.3 树和二叉树 树型结构是一种应用十分广泛的非线性数据结构,它很类似自然界中的树,直观地讲,树型结构是以分支关系定义的层次结构。 树的例子 1.3.2 二叉树 (Binary Tree) 1.二叉树的定义及其性质 (1) 二叉树的定义 1.二叉树的定义及其性质 (1) 二叉树的定义 (3)满二叉树和完全二叉树 (3)满二叉树和完全二叉树 完全二叉树的两条性质: (4)二叉树的存储结构 对于二叉树,我们既可采用顺序存储,又可采用链式存储。 ②链式存储结构 因为树型结构是非线性的结构,所以在存储器里表示树型结构的最自然的方法是链式存储。根据二叉树的特性,任何一个结点最多有左、右两棵子树,所以每个结点至少设有三个域:数据域和左指针域、右指针域: 二叉树遍历的应用 如图所示的二叉树表示下述表达式,试写出它的三种遍历序列。 a+b*c?e/f 二叉树遍历的应用 解: 先序遍历二叉树,按访问结点的先后次序将结点排列起来,可得先序遍历序列为: ?+a*bc/ef 二叉树的确定 任意一棵二叉树的先序序列和中序序列是唯一的。 二叉树的确定举例 例:已知结点的先序序列和中序序列分别为: 先序序列:A B C D E F G 中序序列:C B E D A F G 分析:由先序序列知二叉树的根为A,则其左子树的中序序列为(CBED),右子树的中序序列为(FG)。而左子树的先序序列必为(BCDE),右子树的先序序列为(FG)。 类似地,可由左子树的先序序列和中序序列构造A的左子树,由右子树的先序序列和中序序列构造A的右子树。 二叉树的构造过程 先序序列:A B C D E F G 中序序列:C B E D A F G 二叉树的确定(续) 结论:由给定结点的先序序列和中序序列,可唯一确定一棵二叉树。 问题1:由给定结点的后序序列和中序序列,可否唯一确定一棵二叉树? 问题2:由给定结点的先序序列和后序序列,可否唯一确定一棵二叉树? (7)二叉排序树 (7)二叉排序树 (7)二叉排序树 (8)哈夫曼树及 (8)哈夫曼树 ②哈夫曼树 ②哈夫曼树 哈夫曼树的构造过程 ②哈夫曼编码 哈夫曼树的应用很广,在不同的应用中叶子结点的权值可以有不同的解释。哈夫曼树应用到信息编码中,权值可看成是某个符号出现的频率;应用到判定过程中,权值可看成是某类数据出现的频率;应用到排序过程中,权值可看成是已排好次序而待合并的序列的长度等。哈夫曼编码就是其应用的一种。 在电报通讯中,电文是以二进制的0,1序列传送的。发送端需编码,接受端需译码。等长编码是最简单的二进制编码方式。但电文中每个字符的出现频率不同,采用等长编码,传送电文的总长度较大。 举例:电文为‘ABACCDA’,设A,B,C,D的编码分别为00,01,10,11,则电文为’00 01 00 10 10 11 01’总长为14位。 ②哈夫曼编码(续) 解决办法之一是采用不等长编码,让出现频率高的字符具有较短的编码,让出现频率低的字符具有较长的编码,从而可缩短传送电文的总长度。 若设A,B,C,D的编码分别为0,00,1和01,则电文‘ABACCDA’可转换成长度为9的字符串‘000011010’,此时电文无法译码。 要设计长短不等的编码,必须是任一个字符的编码都不是另一个字符编码的前缀,这种编码称为前缀编码。显然等长编码是前缀编码。 ②哈夫曼编码(续) 为了使不等长编码为前缀编码,可用该字符集中的每个字符作为叶子结点生成一棵编码二叉树。 如图所示的二叉树有4个叶子结点A,B,C, D,其二进制前缀编码 分别为0,10,110, 111。 ②哈夫曼编码(续) 设每种字符在电文中出现的次数为Wi,其编码长度为Li,电文中只有n种字符,则电文总长为?WiLi。 对应二叉树,若置Wi为叶子结点的权, Li恰为从根到叶子结点的路径长度,则?WiLi恰为二叉树上带权路径长度。 为了获得传送电文的最短长度,可将每个字符的出现频率作为字符结点的权赋予该结点上,设计一棵哈夫曼树的问题,求出此树的最小带权路径长度就等于求出了传送电文的最短长度。由此得到的二进制前缀编码称为哈夫曼编码。 ②哈夫曼编码(续) 以电文中每个字符出现的频率作为叶子结点的权值来设计哈夫曼树。 求每个叶结点的编码。从叶到根通过依次找双亲来进行,但编码串是从根开始的。 对每个编码进行译码。译码就是要对一个二进制串所代表的字符给出它唯一的解释,需从根到叶进行查找。 注:哈

文档评论(0)

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

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

1亿VIP精品文档

相关文档