设总节点个数为n,叶子节点个数为n0,度为1的节点个数为n1,度为2的节点个数为n2,则必有 n0+n1+n2 = n …(①)

(1) 对于二叉树有: n0 = n2+1…(②) (为什么呢?下面证明一下)

【注】(1)这个规律是所有二叉树的规律,不是完全二叉树所特有的规律。

(2) 由上面(①) (②)两式 —> n0 = (n-n1+1)/2 ,n2 = (n-n1-1)/2

  • n1=0,n为奇数时:n0 = (n+1) / 2
  • n1=1,n为偶数时:n0 = n / 2

综上
一个具有n个节点的完全二叉树,

1、其叶子节点的个数n0为:n / 2 向上取整,或(n+1) / 2 向下取整
2、度为1的节点数为:

  • n为偶数:1
  • n为奇数:0

3、度为2的节点数为:(n / 2)-1 向上取整,或((n+1) / 2)-1 向下取整

例题
设一棵完全二叉树共有699个节点,则在该二叉树中叶子节点数为?

叶子节点数为:n0 = (699+1)/2 = 350

度为1的节点数:n1 = 0

度为2的节点数:n2 = 349

完全二叉树叶子节点、度为1节点、度为2节点的个数关系相关推荐

  1. c语言输出度为1 的节点,计算机国家二级考试中的度为1和度为2是什么意思?老师说:总结点=叶子节点数+度为1+度为2,都是什么意思?...

    度是一个计算机的单位,度为1就说明该节点的个数为1,度为2就说明该节点的个数为2. 而度为0的结点叫叶子结点,由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个,故总结点=叶子节点数+度 ...

  2. 节点污点 Taint 和容忍度 Toleration在生产中的使用

    目录 一.前言 二.节点设置taints 1.设置taint 2.查看taint 3.删除taint 三.配置toleration及测试 1.没配置tiant时,Pod正常调度 2.配置taint时, ...

  3. 每个叶子节点(nil)是黑色。_填充每个节点的下一个右侧节点指针

    给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *n ...

  4. 每天一道LeetCode-----为二叉树增加next节点,指向同一层的下一个节点

    Populating Next Right Pointers in Each Node 原题链接Populating Next Right Pointers in Each Node 将完全二叉树每个 ...

  5. 控制流图|圈复杂度|基本复杂度

    控制流图|圈复杂度|基本复杂度 控制流图是McCabe复杂度计算的基础,McCabe度量标准是将软件的流程图转化为有向图,然后以图论的知识和计算方法来衡量软件的质量.McCabe复杂度包括圈复杂度(C ...

  6. 程序复杂度之圈复杂度

    圈复杂度(Cyclomatic complexity)也称为条件复杂度或循环复杂度,是一种软件度量,是由Thomas J. McCabe, Sr. 在 1976 年提出,用来表示程序的复杂度,其符号为 ...

  7. 计算机里面哪个代表度,二叉树中的度是什么?

    二叉树是一种很重要的非线性数据结构,它的特点是每个结点最多有两个后件,且其子树有左右之分(次序不能任意颠倒). 1.二叉树的递归定义和基本形态 二叉树是以结点为元素的有限集,它或者为空,或者满足以下条 ...

  8. 浅析代码圈复杂度及认知复杂度

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  9. 软件复杂度和圈复杂度

    作者:翁松秀 软件复杂度和圈复杂度 软件复杂度 1,起源与应用 成立于1976的McCabe & Associates公司开发出了McCabe Cyclomatic Complexity Me ...

  10. java 圈复杂度_圈复杂度和代码质量优化(附带示例代码纠正代码质量)

    什么是圈复杂度? --------------------------------------- 圈复杂度(Cyclomatic Complexity)是衡量计算机程序复杂程度的一种措施.它根据程序从 ...

最新文章

  1. git for c#, clone方法
  2. 软考高项之风险管理-攻坚记忆
  3. 爬取58二手数据.py
  4. c# Task.Factory.StartNew 传参数_C#/C++混合编程一二事
  5. 只需三步就能做出可视化大屏的python工具,真香!
  6. nginx 不带www到www域名的重定向
  7. php程序设计简明教程
  8. 数字化时代在线教育行业营销解决方案
  9. window10 安装python
  10. ctfshow-WEB-web10( with rollup注入绕过)
  11. eclipse—安装ADT插件搭建安卓开发环境
  12. [DELPHI]数据类型
  13. Java覆盖率模拟protected,单元测试覆盖率-使用Clover
  14. 服务器装系统蓝屏怎么办,重装系统蓝屏怎么办
  15. Word文档编号工具,Word标题,图、表手动编号工具
  16. linux必会的30道shell编程面试题及讲解
  17. Matlab二维正态分布可视化
  18. Node基础——认识Node
  19. 汉诺塔问题(C语言代码)
  20. Linux6/Centos6 NFS详细配置

热门文章

  1. 抓取91家纺网的多个商品图片保存
  2. unix高级编程-fork之后父子进程共享文件
  3. 强化学习--马尔可夫决策过程学习笔记
  4. java微信获取openId和sessionKey
  5. html翻页特效实现原理,CSS3实现超炫3D翻书效果(二)
  6. 卡通渲染——眼睛面部
  7. c语言通讯录——动态内存版
  8. 如何快速学习知识和技能(非贩卖焦虑)
  9. 如何免费下载Tuxera NTFS for Mac序列号
  10. uniapp 公众号打开小程序,app打开小程序,小程序打开其他小程序