第章习题的的答案.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  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文档。上传文档
查看更多
第章习题的的答案

习题6 1.树与二叉树之间有什么区别与联系? 解:树与二叉树逻辑上都是树形结构,区别有三点: (1)二叉树的度至多为2,树无此限制。 (2)二叉树有左右子树之分,树无此限制。 (3)二叉树允许为空,树一般不允许为空。 二叉树不是树的特例。 2.高度为的完全二叉树至少有多少个结点?至多有多少个结点? 解:至少有个结点,至多有个结点。和结点数之间的关系是??+1。 3.已知A[1..n]是一棵顺序存储的完全二叉树,如何求出A[i]和A[j]的最近的共同祖先? 解:根据顺序存储的完全二叉树的性质,编号为i的结点的双亲的编号为?i/2?,故A[i]和A[j]的最近的共同祖先可如下求出: while(i/2!j/2) if(ij)i=i/2; else j=j/2; 退出while后,若i/2=0,则最近共同祖先为根结点,否则共同祖先为i/2。 4.已知A[1..n]是一棵顺序存储的完全二叉树,求序号最小的叶子结点的下标。 解:根据完全二叉树的性质,最后一个结点(编号为n)的双亲结点的编号是?n/2?,这是最后一个分支结点,在它之后是第一个叶子结点,故序号最小的叶子结点的下标是?n/2?+1。 5.一棵深度为L的满k叉树有以下性质:第L层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树,如果按层次顺序从1开始对全部结点进行编号,求: (1)各层的结点数是多少? (2)编号为n的结点的双亲结点(若存在)的编号是多少? (3)编号为n的结点的第i个孩子结点(若存在)的编号是多少? (4)编号为n的结点有左右兄弟结点的条件是什么?如果有,其右兄弟结点的编号是多少? 解:(1)kh-1(h为层数)。 (2)因为该树上每层上均有kh-1个结点,从根开始编号为1,则结点i的从右向左数第2个孩子的结点编号为ki。设n为结点i的子女,则关系式(i-1)*k+2ni*k+1成立,因i是整数,故结点n的双亲i的编号为?n/k?+1。 (3)结点(n1)的前一结点编号为n-1(其最右边子女编号是(n-1)*k+1),故结点n的第i个孩子的编号是(n-1)*k+1+i。 (4)根据以上分析,结点n有右兄弟的条件是,它不仅双亲的从右边的第一个子女,即(n-1)%k!=0,其右兄弟编号是n+1。 6.试证明,在具有n(n≥1)个结点的m叉树中,有n(m-1)+1个指针域是空的。 解:具有n个结点的m叉树共用n*m个指针。除根结点外,其余n-1个结点均有指针所指,故空指针数为n*m-(n-1)=n*(m-1)+1。 7.试找出满足下列条件的二叉树: (1)先序序列与后序序列相同; (2)中序序列与后序序列相同; (3)先序序列与中序序列相同; (4)中序序列与层次遍历序列相同。 解:(1)若先序序列与后序序列相同,则或为空树,或为只有根结点的二叉树。 (2)若中序序列与后序序列相同,则或为空树,或为任一结点至多只有左子树的二叉树。 (3)若先序序列与中序序列相同,则或为空树,或为任一结点至多只有右子树的二叉树。 (4)若中序序列与层次遍历序列相同,则或为空树,或为任一结点至多只有右子树的二叉树。 8.设有一棵二叉树的层次遍历序列为ABCDEFGHIJ,中序遍历序列为DBGEHJACIF。请画出这棵二叉树。 解:按层次遍历,第一个结点(树不空)为根,该结点在中序序列中把序列分成左右两部分——左子树和右子树。若左子树不空,层次序列中第二个结点为左子树的根;若左子树为空,则层次序列中第二个结点为右子树的根。对右子树分析类似。层次序列的特点是:从左到右每个结点或是当前情况下子树的根或是叶子。 9.用一维数组存放一棵完全二叉树:ABCDEFGHIJKL。请写出后序遍历该二叉树的访问结点序列。 解:HIDJKEBLFGCA。 10.已知一棵二叉树的中序遍历序列为DGBAECHIF,后序遍历序列为:GDBEIHFCA。 (1)试画出该二叉树; (2)试画出该二叉树的中序线索树; (3)试画出该二叉树对应的森林。 解:(1) (2)略 (3) 11.设有正文AADBAACACCDACACAAD,字符集为A、B、C、D,设计一套二进制编码,使得上述正文的编码最短。 解:字符A、B、C、D出现的次数为9、1、5、3。其哈夫曼编码如下: A:1,B:000,C:01,D:001。 其哈夫曼树为: 12.假设一个仅包含二元运算符的算术表达式以链表形式存储在二叉树T中,写出计算该算术表达式值的算法。 解:typedef struct Node{ ElemType data; float val; char optr;//只取+、-、*、/ struct Node *lchild,*rchild }BiNode,*BiTree;

文档评论(0)

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

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

1亿VIP精品文档

相关文档