树(第五章).docVIP

  1. 1、本文档共53页,可阅读全部内容。
  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章 树和二叉树 6.1 已知一棵树边的集合为{I,M, I,N, E,I, B,E, B,D, A,B, G,J, G,K, C,G, C,F, A,C},请画出这棵树,并回答下列问题: (1) 哪个是根结点? (2) 哪些是叶子结点? (3) 哪个是结点G的双亲? (4) 哪些是结点G的祖先? (5) 哪些是结点G的孩子? (6) 哪些是结点E的子孙? (7) 那些是结点E的子孙? (8) 结点B和N的层次号分别是什么? (9) 树的深度是多少? (10) 以结点C为根的子树的深度是多少? 6.2 一棵度为2的树与一棵二叉树有何区别? 解:二叉树是颗有序树,但度为2的树则未必有序。 6.3 试分别画出具有3个结点的树和3个结点的二叉树的所有不同形态。 6.4 一棵深度为H的满k叉树有如下性质:第H层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。如果按层次顺序从1开始对全部结点编号,问: (1) 各层的结点数目是多少? (2) 编号为p的结点的父结点(若存在)的编号是多少? (3) 编号为p的结点的第i个儿子结点(若存在)的编号是多少? (4) 编号为p的结点有右兄弟的条件是什么?其右兄弟的编号是多少? 解:(1) (2)如果p是其双亲的最小的孩子(右孩子),则p减去根结点的一个结点,应是k的整数倍,该整数即为所在的组数,每一组为一棵满k叉树,正好应为双亲结点的编号。如果p是其双亲的最大的孩子(左孩子),则p+k-1为其最小的弟弟,再减去一个根结点,除以k,即为其双亲结点的编号。 综合来说,对于p是左孩子的情况,i=(p+k-2)/k;对于p是右孩子的情况,i=(p-1)/k 如果左孩子的编号为p,则其右孩子编号必为p+k-1,所以,其双亲结点的编号为 向下取整,如1.5向下取整为1 (3)结点p的右孩子的编号为kp+1,左孩子的编号为kp+1-k+1=k(p-1)+2,第i个孩子的编号为k(p-1)+2+i-1=kp-k+i+1。 (4)当(p-1)%k != 0时,结点p有右兄弟,其右兄弟的编号为p+1。 6.5 已知一棵度为k的树中有个度为1的结点,个度为2的结点,…,个度为k的结点,问该树中有多少个叶子结点? 解:根据树的定义,在一颗树中,除树根结点外,每个结点有且仅有一个前驱结点,也就是说,每个结点与指向它的一个分支一一对应,所以除树根结点之外的结点树等于所有结点的分支数,即度数,从而可得树中的结点数等于所有结点的度数加1。总结点数为 而度为0的结点数就应为总结点数减去度不为0的结点数的总和,即 6.6 已知在一棵含有n个结点的树中,只有度为k的分支结点和度为0的叶子结点。试求该树含有的叶子节点数目。 解:利用上题结论易得结果。设度为k的结点个数为,则总结点数为。叶子结点的数目应等于总结点数减去度不为0的结点的数目,即 6.7 一棵含有n个结点的k叉树,可能达到的最大深度和最小深度各为多少? 解:能达到最大深度的树是单支树,其深度为n。满k叉树的深度最小,其深度为 (证明见徐孝凯著数据结构实用教程P166) 6.8 证明:一棵满k叉树上的叶子结点数和非叶子结点数之间满足以下关系: 解:一棵满k叉树的最后一层(深度为h)的结点数(叶子结点数)为,其总结点数为,则非叶子结点数,从而得 6.9 试分别推导含有n个结点和含个叶子结点的完全三叉树的深度H。 解:(1) 根据完全三叉树的定义 (2) 设总的结点数为n,非叶子结点数为注意到每个非叶子结点的度均为3,则 由 6.10 对于那些所有非叶子结点均含有左右子数的二叉树: (1) 试问:有n个叶子结点的树中共有多少个结点? (2) 试证明:,其中n为叶子结点的个数,表示第i个叶子结点所在的层次(设根节点所在层次为1)。 解:(1)总结点数为,其中为非叶子结点数,则叶子结点数为,所以总结点数为 。 (2)用归纳法证明。 i=1,说明二叉树只有一个叶子结点,则整棵树只有一个根结点,, ,结论成立。 设有n个叶子结点时也成立,即,现假设增加一个叶子结点,这意味着在某叶子结点p上新生两个叶子结点,而结点p则成为非叶子结点,可见,总结点数增2,叶子结点数增1。此时,所有叶子结点是原结点除去p,然后加上两个深度为的新叶子结点,由此, 则当i=n+1时,也成立,由此即得到证明。 6.11 在二叉树的顺序存储结构中,实际上隐含着双亲的信息,因此可和三叉链表对应。假设每个指针域占4个字节,每个信息域占k个字节。试问:对于一棵有n个结点的二叉树,且在顺序存储结

文档评论(0)

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

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

1亿VIP精品文档

相关文档