_6_章_树和二叉树.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  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 已知一棵树如图所示,回答下列问题:  (1) 哪个是根结点?  (2) 哪些是叶子结点?  (3) 哪个是结点 G 的双亲?  (4) 哪些是结点 G 的祖先?  (5) 哪些是结点 B 的孩子?  (6) 哪些是结点B的子孙?  (7) 哪些是结点 E 的兄弟?  (8) 结点 B 和 H 的层次号分别是什么 ?  (9) 树的深度是多少? (10) 以结点 C 为根的子树的深度是多少? 【6.1 解】: (1) A (2) K, F,G,H,I,J (3) B (4) B,A (5) E,F,G (6) E,F,G,K (7) F,G (8) 2, 3 (9) 4 (10) 2 6.2 在结点个数为n(n1)的各棵树中,最小的高度是多少?它有多少个叶结点?多少个分支结点?最大的高度树是多少?它有多少个叶结点?多少个分去结点? 【6.2解】结点个数为n时,高度最小的树高度为1,有2层;它有n-1个叶结点,1个分支结点;高度最大的树的高度为n-1,有n层;它有1个叶结点,n-1个分支结点。 6.3简述树与二叉树的区别? 【6.3解】二叉树的度最大为2,而树的度可以大于2; 二叉树的每个结点的孩子有左、右之分,而树中结点的孩子无左右之分。 6.4 n(n1)个结点的各棵二叉树中,最小的高度(h≥1)+1,此时树为完全二叉树; 最大高度为n,比如一棵斜二叉树。 6.5如果一棵树有n1个度为1的结点,有n2个度为2的结点,…,nm个度为m的结点,试问有多少个度为0的结点?试推导之。 【6.5解 设叶子结点数为n0,则树中结点数和总度数分别为 结点数=n0+n1+n2+...+nm 总度数=n1+2n2+...+m×nm结点数等于总度数加1,所以得到n0= 6.6如果已知一棵二叉树有20个叶子结点,有10个结点仅有左孩子,15个结点仅有右孩子,求出该二叉树的结点数目。已知某完全二叉树有100个结点,试用三种不同的方法求出该二叉树的叶子结点数。?; // 结点不存在 int j=i/2?; if(j0) cout“双亲的结点为:”T?[j]endl?; else cout“根结点没有双亲”endl?; j=2*i?; if(j=n) cout?“左孩子为”T[j]endl?; else cout“没有左孩子”endl?; j=2*i+1?; if(j=n) cout?“右孩子为”T[j]endl?; else cout“没有右孩子”endl?; } 6.9 使用(1)顺序表示和(2)二叉链表表示法,分别画出下图所示二叉树的存储表示。 【6.9解】 (1)顺序表示 0 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 8 9 (2)二叉链表表示 6.10有如下图的二叉树 分别写出其先序、中序、后序和按层遍历序列。 【6.10解】先序:GECDKHPMR 中序:CDEGHKMRP 后序:DCEHRMPKG 按层:GEKCHPDMR 6.11 假设 n 和 m 为二叉树中两结点,用“1”、“0”或“ф”(分别表示肯定、恰恰相反或者不一定)填写下表: ? 问 已知 前序遍历时 n在m前 中序遍历时 n在m前 后序遍历时 n在m前 n在m的左方 1 1 1 n在m的右方 0 0 0 n在m的祖先 1 ф 0 n在m的子孙 0 ф 1 注:如果(1)离 a 和 b 最近的共同祖先 p 存在,且(2)a 在 p 的左子树中,b 在 p 的右子树中,则称 a 在 b 的左方(即 b 在 a 的右方)。 6.12以先序输出一棵二叉树所有结点的数据值及结点所在的层次。 【6.12解】 templatecalss T void BiTreeT:;NodeLevel(BTNode *bt, int i) { if ( bt ) { // 树不空 coutbt-data”,”iendl; Node-Level(bt-lchild,i+1); NodeLevel(bt-rchild,i+1); } 6.13 计算二叉树中各结点中最大元素的值 【6.13解】 templateclass T T BiTreeT::MaxValue(BTNodeT *bt, T max) { if( bt) { //树不空 if(bt-datamax) max=t-data?; ma

文档评论(0)

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

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

1亿VIP精品文档

相关文档