设一棵完全二叉树具有1000个结点,则此完全二叉树有()叶子结点,有()个度为2的结点。
最佳答案 问答题库1178位专家为你答疑解惑
一、问题
设一棵完全二叉树具有1000个结点,则此完全二叉树有(500)叶子结点,有(499)个度为2的结点。
分析:
1、叶子结点:度为0的结点。
2、以n0代表度为0的结点,n2代表度为2的结点。
3、则根据二叉树的性质有 n0 = n2 +1。
因此我们只要求出n0就能求出n2的结点个数,思路实现内容如下:
二、思路实现
-
第一步,求n0的个数。
1000个结点的完全二叉树有10层( 2 9 2^9 29 - 1 < 1000 < 2 10 2^{10} 210-1),其中前9层为满二叉树,共有512-1=511个结点。因此有1000-511=489,说明第10层有489个结点,且第10层的结点均为叶子结点(度为0的结点)。
而489/2 = 244…1,说明第9层有244+1(245)个结点有子结点,而根据满二叉树第9层共有 2 8 2^8 28 = 256个结点,则第9层度为0的结点(叶子结点)个数为 256-245 = 11。
n0 = 第9层的叶子结点数 + 第10层的叶子结点数 = 489+11 = 500,即叶子结点个数为500。
-
第二步,求n0 = n2 +1求解n2的个数。
由第一步所得叶子结点个数,可得二叉树中度为2的结点数为:
n2=n0-1=500-1=499
即:度为2的结点数有499个。
问题记录时间:2023.11.5
Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder)
点赞加关注,收藏不迷路!本篇文章对你有帮助的话,还请多多点赞支持!
99%的人还看了
相似问题
- 【剑指offer|图解|链表】链表的中间结点 + 链表中倒数第k个结点
- 【数据结构初阶(3)】双向带头结点循环链表
- 单链表相关面试题--4.输入一个链表,输出该链表中倒数第k个结点
- 王道数据结构课后代码题p150 15.设有一棵满二叉树(所有结点值均不同),已知其先序序列为 pre,设计一个算法求其后序序列post。(c语言代码实现)
- 【数据结构】树的基本性质(计算树的总结点数与叶结点数)
- 【数据结构】树与二叉树(五):二叉树的顺序存储(初始化,插入结点,获取父节点、左右子节点等)
- NowCoder | 链表中倒数第k个结点
- 设一棵完全二叉树具有1000个结点,则此完全二叉树有()叶子结点,有()个度为2的结点。
- 11.3递归建二叉树,二叉树函数规范化输入输出,一些二叉树性质,求叶子结点与树的高度
- 二叉树第i层结点个数
猜你感兴趣
版权申明
本文"设一棵完全二叉树具有1000个结点,则此完全二叉树有()叶子结点,有()个度为2的结点。":http://eshow365.cn/6-33578-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!