【数据结构与算法】树和二叉树课后习题

题目

题目1

知一棵树边的集合为
< I , M > , < I , N > , < E , I > , < B , E > , < B , D > , < A , B > , < G , J > , < G , K > , < C , G > , < C , F > , < H , L > , < C , H > , < A , C > {<I,M>,<I,N>,<E,I>,<B,E>,<B,D>,<A,B>,<G,J>, <G,K>,<C,G>,<C,F>,<H,L>,<C,H>,<A,C>} <I,M>,<I,N>,<E,I>,<B,E>,<B,D>,<A,B>,<G,J>,<G,K>,<C,G>,<C,F>,<H,L>,<C,H>,<A,C>
请画出这棵树并回答下列问题:

  1. 哪个是根结点?
  2. 哪些是叶子结点?
  3. 哪个是结点G的双亲?
  4. 哪些是结点G的祖先?
  5. 哪些是结点G的孩子?
  6. 哪些是结点E的子孙?
  7. 哪些是结点E的兄弟?哪些是结点F的兄弟?
  8. 结点B和N的层次号分别是什么?
  9. 树的深度是多少?
  10. 以结点C为根的子树的深度是多少?

该树形状

在这里插入图片描述

题目1答案

(1) 根结点:A
(2) 叶子节点:M、N、J、K
(3) 结点G的双亲:C
(4) 结点G的祖先:A、C
(5) 节点G的孩子:J、K
(6) 节点E的子孙:I、M、N
(7) 节点E的兄弟:D;节点F的兄弟:H、G
(8) 结点B和N的层次号分别是:2、5
(9) 树的深度:5
(10) 以结点C为根的子树的深度:2


题目2

一棵度为2的树与一棵二叉树有何区别?


题目2答案

  • 结构方面:一棵度为2的树的结点之间没有严格的父子关系,但二叉树中每个结点都有明确的父结点和左右结点。
  • 遍历方式:二叉树常用前序、中序、后序遍历,而度为2的树可以用更特殊的遍历方式来遍历,如:从根结点开始,先遍历左子结点、再遍历右子结点、最后递归遍历子树。

题目3

已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,…,nk个度为k的结点,问该树中有多少个叶子结点?


题目3答案

度之和: n − 1 ① 度之和:n-1 ① 度之和:n1①
度之和: n 1 + n 2 ∗ 2 + n 3 ∗ 3.. + n m ∗ m ② 度之和:n1+n2*2+n3*3 ..+ nm*m ② 度之和:n1+n22+n33..+nmm
联立解得: n 0 = n 2 + . . . + ( k − 1 ) ∗ n k + 1 联立解得:n0=n2+...+(k-1)*nk+1 联立解得:n0=n2+...+(k1)nk+1


题目4

已知一棵含有n个结点的树中,只有度为k的分支结点和度为0的叶子结点,求该树含有的叶子结点的数目


题目4答案

设叶子结点为 x 个,度为 k 的分支结点为 n − x 个 设叶子结点为x个,度为k的分支结点为n-x个 设叶子结点为x个,度为k的分支结点为nx
在这里插入图片描述
故一共有 1 + ( n − k ) ∗ k 1+(n-k)*k 1+(nk)k个结点(其中1为最顶上的结点也就是根结点)
解: x = n − ( n − 1 ) / k 解: x= n-(n-1)/k 解:x=n(n1)/k


题目5

证明:一棵满k叉树上的叶子结点数n0和非叶子结点数n1之间满足下列关系: n 0 = ( k − 1 ) n 1 + 1 n_0=(k-1)n_1+1 n0=k1n1+1


题目5答案

由于是满k叉树,故只有叶子结点和度为k的非叶子结点,假设一共有n + 1层
n 1 = ( 1 − k n ) / ( 1 − k ) n_1=(1-k^n)/(1-k) n1=(1kn)/(1k)
n 0 = k n n_0=k^n n0=kn
故得证
n 0 = ( k − 1 ) n 1 + 1 n_0=(k-1)n1+1 n0=k1n1+1


结束语

  因为是算法小菜,所以提供的方法和思路可能不是很好,请多多包涵~如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!

扫描二维码关注公众号,回复: 15748365 查看本文章

猜你喜欢

转载自blog.csdn.net/Zchengjisihan/article/details/131521603