数据结构第五次作业..docVIP

  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、以下说法错误的是 B A. 存在这样的二叉树,对其采用任何次序的遍历其结点访问序列均相同 (只有一个根节点的二叉树) B. 二叉树是树的特殊情形 C. 由树转换成二叉树,其根结点的右子树总是空的 D. 在二叉树中只有一棵子树的情形下,也要指出是左子树还是右子树 //二叉树不是树,是一种独特的结构,不然就没有二叉树和树的转换一说了 2、设F是一个森林,B是由F变换得到的二叉树。若F中有n个非终端结点,则B中没有右孩子的结点有 C 个。 A. n-1 B. n C. n+1 D. n+2 3、将一棵树T转换为二叉树B,则T的后根序列是B的 B 。 A. 先根序列 B. 中根序列 C. 后根序列 D. 层次序列 4、设树T的度为4,其中度为1, 2, 3, 4的结点个数分别为4, 2, 1, 1,则T中的叶结点的个数为 D 。 A. 5 B. 6 C. 7 D. 8 //树的度即树中最大的结点的度数。 //叶子结点的个数即度为0的结点的个数=树的总度数-度不为0的结点的个数(根节点除外),所以题中叶结点个数=(1*4+2*2+3*1+4*1)- (4+2+1+1)+1=8 [加1是排除根节点不占度] 5、设森林F中有三棵树,第一、第二、第三棵树的结点个数分别为M1, M2, M3。与森林F对应的二叉树根结点的右子树上的结点个数为 D 。 A. M1-1 B. M1+M2 C. M2 D. M2+M3 //森林转换为二叉树过程中,森林的第一棵树的根节点作为最终二叉树的根节点,而以此根节点为界限,右边的树全部在二叉树根结点的右边,即3整体作为右子树,所以二叉树右子树中结点的个数即森林中从第二棵树开始右边所有树的结点总和。而相应的左子树中节点个数即第一棵树的结点个数-1(第一棵树的根结点作为了最终二叉树的根结点)。 6、若以二叉树的任一结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是 C 。 A. 二叉排序树 B. 哈夫曼树 C. 堆 D. 线索二叉树 7、用5个权值{3, 2, 4, 5, 1}构造的哈夫曼树的带权路径长度是 B 。 A. 32 B. 33 C. 34 D. 15 (1+2)*3+(4+5)*2=33 ABCDEFGHIJKL,后根序列为:CBEFDGAJIKLH,试画出森林F。 提示:先画出森林F所对应的二叉树B,然后再将B转换为森林。 树,二叉树,森林间的转换方法 1将树转换为二叉树 树中每个结点最多只有一个最左边的孩子(长子)和一个右邻的兄弟。按照这种关系很自然地就能将树转换成相应的二叉树将一般树转化为二叉树的思路,主要根据树的孩子-兄弟存储方式而来,步骤是: ①加线:在各兄弟结点之间用虚线相连。可理解为每个结点的兄弟指针指向它的一个兄弟。 ②抹线:对每个结点仅保留它与其最左一个孩子的连线,抹去该结点与其他孩子之间的连线。可理解为每个结点仅有一个孩子指针,让它指向自己的长子。 ③旋转:把虚线改为实线从水平方向向下旋转45℃,成右斜下方向。原树中实线成左斜下方向。这样就树的形状成呈现出一棵二叉树。 2二叉树转换为一般树 此时的二叉树必须是由某一树(一般树)转换而来的没有右子树的二叉树。并非随便一棵二叉树都能还原成一般树。其还原过程也分为三步: ①加线:若某结点i是双亲结点的左孩子,则将该结点i的右孩子以及当且仅当连续地沿着右孩子的右链不断搜索到所有右孩子,都分别与结点i的双亲结点用虚线连接。 ②抹线:把原二叉树中所有双亲结点与其右孩子的连线抹去。这里的右孩子实质上是原一般树中结点的兄弟,抹去的连线是兄弟间的关系。 ③进行整理:把虚线改为实线,把结点按层次排列。 1、将一个中序表达式转化成为逆波兰表达式。 ? ? ? ?首先维护的是两个栈,这里称为S1和S2,S1中的结果最后存的就是逆波兰表达式,S2中将用于暂时存放运算符并且在最终形成逆波兰表达式的时候,该栈是会清空的。 ? ? ? ?首先定义一下运算符的优先级关系,从小到达排序,相同优先级没有用逗号隔开:(,+-,*\,负号,)。 ? ? ? ?从左至右遍历一个给定的中序表达式,也就是常规的数学计算的表达式。 (1)如果遇到的是数字,直接加入到栈S1中; (2)如果遇到的是左括号,则直接将该左括号加入到栈S2中; (3)如果遇到的是右括号,那么将栈S2中的运算符一次出栈加入到栈S1中,直到遇到左括号,但是该左括号出栈S2并不加入到栈S1中; (4)如果遇到的是运算符,包

文档评论(0)

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

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

1亿VIP精品文档

相关文档