二叉树—相关结构

1.相关的结构问题(分治递归)

1.1节点个数

1.2叶子结点个数

叶子结点:没有孩子的节点

1.3树的高度(深度)

1.4二叉树第k层的节点个数

1.5二叉树查找值为x的节点

2.二叉树的创建和销毁

2.1二叉树的构建

二叉树遍历_牛客题霸_牛客网

2.2二叉树的销毁

二叉树的销毁我们要用后序遍历的方式来实现,左子树、右子树、根。

3.判断二叉树是否为完全二叉树

简单回顾一下完全二叉树:前k-1层的节点都是满的,最后一层可满可不满,最后一层的节点的顺序必须是从左往右,如果最后一层也是满的话就是满二叉树,满二叉树也是一种完全二叉树。

这里的判断方法我用的是队列,利用队列的先进先出原则,一层一层的遍历,根不为空就进队列,它的左右子树(无论是空还是非空)都push进队列,记录然后pop,遇到空就开始判断,然后开始从队头记录出数据,出到第一空看队列里是否有非空,有就不是完全二叉树,反之就是完全二叉树。

4.二叉树小知识点

对于任何的一棵二叉树,度不大于2,节点的个数为N:

度为0的节点个数为n0,度为1的节点个数为n1,度为2的节点个数为n2,之间的关系公式为:

n0 + n1 + n2 = N -》 n0 = n2 + 1 -》 2n0 + n1 - 1 = N

相关推荐
Dream_Snowar10 分钟前
速通Python 第四节——函数
开发语言·python·算法
1nullptr21 分钟前
三次翻转实现数组元素的旋转
数据结构
Altair澳汰尔23 分钟前
数据分析和AI丨知识图谱,AI革命中数据集成和模型构建的关键推动者
人工智能·算法·机器学习·数据分析·知识图谱
TT哇26 分钟前
【数据结构练习题】链表与LinkedList
java·数据结构·链表
嵌入式科普1 小时前
十一、从0开始卷出一个新项目之瑞萨RA6M5串口DTC接收不定长
c语言·stm32·cubeide·e2studio·ra6m5·dma接收不定长
A懿轩A1 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列
Python机器学习AI1 小时前
分类模型的预测概率解读:3D概率分布可视化的直观呈现
算法·机器学习·分类
乐闻x1 小时前
VSCode 插件开发实战(三):插件配置项自定义设置
ide·vscode·编辑器
吕小明么2 小时前
OpenAI o3 “震撼” 发布后回归技术本身的审视与进一步思考
人工智能·深度学习·算法·aigc·agi
1 9 J2 小时前
数据结构 C/C++(实验五:图)
c语言·数据结构·c++·学习·算法