完全二叉树叶子节点、度为1节点、度为2节点的个数关系
设总节点个数为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节点的个数关系相关推荐
- c语言输出度为1 的节点,计算机国家二级考试中的度为1和度为2是什么意思?老师说:总结点=叶子节点数+度为1+度为2,都是什么意思?...
度是一个计算机的单位,度为1就说明该节点的个数为1,度为2就说明该节点的个数为2. 而度为0的结点叫叶子结点,由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个,故总结点=叶子节点数+度 ...
- 节点污点 Taint 和容忍度 Toleration在生产中的使用
目录 一.前言 二.节点设置taints 1.设置taint 2.查看taint 3.删除taint 三.配置toleration及测试 1.没配置tiant时,Pod正常调度 2.配置taint时, ...
- 每个叶子节点(nil)是黑色。_填充每个节点的下一个右侧节点指针
给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *n ...
- 每天一道LeetCode-----为二叉树增加next节点,指向同一层的下一个节点
Populating Next Right Pointers in Each Node 原题链接Populating Next Right Pointers in Each Node 将完全二叉树每个 ...
- 控制流图|圈复杂度|基本复杂度
控制流图|圈复杂度|基本复杂度 控制流图是McCabe复杂度计算的基础,McCabe度量标准是将软件的流程图转化为有向图,然后以图论的知识和计算方法来衡量软件的质量.McCabe复杂度包括圈复杂度(C ...
- 程序复杂度之圈复杂度
圈复杂度(Cyclomatic complexity)也称为条件复杂度或循环复杂度,是一种软件度量,是由Thomas J. McCabe, Sr. 在 1976 年提出,用来表示程序的复杂度,其符号为 ...
- 计算机里面哪个代表度,二叉树中的度是什么?
二叉树是一种很重要的非线性数据结构,它的特点是每个结点最多有两个后件,且其子树有左右之分(次序不能任意颠倒). 1.二叉树的递归定义和基本形态 二叉树是以结点为元素的有限集,它或者为空,或者满足以下条 ...
- 浅析代码圈复杂度及认知复杂度
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...
- 软件复杂度和圈复杂度
作者:翁松秀 软件复杂度和圈复杂度 软件复杂度 1,起源与应用 成立于1976的McCabe & Associates公司开发出了McCabe Cyclomatic Complexity Me ...
- java 圈复杂度_圈复杂度和代码质量优化(附带示例代码纠正代码质量)
什么是圈复杂度? --------------------------------------- 圈复杂度(Cyclomatic Complexity)是衡量计算机程序复杂程度的一种措施.它根据程序从 ...
最新文章
- git for c#, clone方法
- 软考高项之风险管理-攻坚记忆
- 爬取58二手数据.py
- c# Task.Factory.StartNew 传参数_C#/C++混合编程一二事
- 只需三步就能做出可视化大屏的python工具,真香!
- nginx 不带www到www域名的重定向
- php程序设计简明教程
- 数字化时代在线教育行业营销解决方案
- window10 安装python
- ctfshow-WEB-web10( with rollup注入绕过)
- eclipse—安装ADT插件搭建安卓开发环境
- [DELPHI]数据类型
- Java覆盖率模拟protected,单元测试覆盖率-使用Clover
- 服务器装系统蓝屏怎么办,重装系统蓝屏怎么办
- Word文档编号工具,Word标题,图、表手动编号工具
- linux必会的30道shell编程面试题及讲解
- Matlab二维正态分布可视化
- Node基础——认识Node
- 汉诺塔问题(C语言代码)
- Linux6/Centos6 NFS详细配置