计算机统考重难点数据结构-第二讲.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文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * c 5 f 4 9 22 a 6 13 d 4 e 2 b 1 3 7 WPL=(1 + 2 )×4 + 4×3 + (4 + 5 + 6)×2=54 哈夫曼树及其应用 ? 哈夫曼树的构造 构造n个叶子的哈夫曼树需要经过n-1次合并,每次合并都要增加一个新结点。所以n个叶子的哈夫曼树上有且仅有2n-1个结点 哈夫曼树上不存在度为1的结点。我们把这种不存在度为1的结点的二叉树称为严格二叉树或正则二叉树。 n0=n2+1 n=n0 + n1 + n2 = n0 + n2 = n0 + (n0-1) = 2 * n0 - 1 电文=“abcdedacafcfadcacfdaef” 字符集={ a, b, c, d, e, f } 利用二叉树可以获得前缀码:以字符集中的字符为叶子,构造一棵二叉树; 在左树枝上标0码,右树枝上标1码。从树根到树叶所经历的分支构成了相应叶子字符的前缀码: c f a d e b 0 1 0 0 1 1 1 0 0 1 a: 10 b: 1100 c: 01 d: 111 e: 1101 f: 00 由于n个叶子能够构造出很多形态各异的二叉树, 因而会有多种前缀码方案, 取那种呢? 当然是使得电文比特流为最短的编码方案。 c f a d e b 0 1 0 0 1 1 1 0 0 1 a: 10 b: 1100 c: 01 d: 111 e: 1101 f: 00 显然,如果ci是权,比特流长度就是二叉树的WPL。 哈夫曼树的WPL是最小的,故用哈夫曼树产生前缀码是最优前缀码,又称为哈夫曼编码。 n—字符个数 ci-字符在电文中重复出现次数 li-串长,根到叶子的路径长度 经典例题分析 【例1】算术表达式a+b*(c+d/e)转为后缀表达式后为( )。 【中科大 2008】 A.ab+cd+e/* B.abcde/+*+ C.abcde/*++ D.abcde*/++ 解 考察表达式二叉树的知识。将算术表达式转化为二叉树,相应的二叉树中以左子树表示第一操作数,右子树表示第二操作数,根结点的数据域存放运算符(若为一元运算符,则左子树为空)。算术表达式a+b*(c+d/e)对应的二叉树为。 因此本题答案为B * 【例2】下列线索二叉树中(用虚线表示线索),符合后序线索树定义的是 【解析】本题考查对线索二叉树的线索的理解。线索二叉树是利用原二叉树中的空指针来反映二叉树的三种遍历的前后关系。题目中的这棵树的后序遍历序列是dbca。所以d无前驱结点,左链域为空,由此排除选项B和C。b的前驱结点为d,所以b的左链域指向结点d,因此排除选项A。因此本题答案为D * 【例3】在下图所示的平衡二叉树中,插入关键宇48后得到一棵新平衡二叉树。在新平衡二叉树中,关键宇37所在结点的左、右子结点中保存的关键字分别是 A.13、48 B.24、48 C.24、53 D.24、90 【解析】本题考查对平衡二叉树的基本操作。插入关键字48后,根结点的平衡因子由-1变成-2,要进行两次旋转操作,具体过程如下图: * 【例4】在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点;10个度为1的结点,则树T的叶结点个数是 A.41 B.82 C.113 D.122 【解析】本题考查树的基本概念。设树中结点总数为N,度为i(i=0,1,2,3,4)的结点数分别为Ni,树中各结点的度之和等于N-1。则可得: N=N0+N1+2*N2+3*N3+4*N4+1 代入题设中的数据可得N0=82,即树的叶子结点数为82.因此本题答案为B. * 【例5】对n(n≥2)个权值均不相同的字符构造哈夫曼树。下列关于该哈夫曼树的叙述中,错误的是 A.该树一定是一棵完全二叉树 B.树中一定没有度为I的结点 C.树中两个权值最小的结点一定是兄弟结点 D.树中任一非叶结点的权值二定不小于下一层任一结点的权值 【解析】具有最小带权路径长度的二叉树称为哈夫曼树。根据哈夫曼树的构造过程,树中肯定没有度为1的结点,树中任一非叶结点的权值一定大于下一层任一结点的权值,而且树中的两个权值最小的结点一定是兄弟结点。错的是A,因为这个树不一定是一棵完全二叉树。 * 【例14】编写算法,求二叉树的宽度 按层次遍历二叉树,采用一个队列,让根节点如队列,最后出队列,如有左右子树,则左

文档评论(0)

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

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

1亿VIP精品文档

相关文档