2024-11-25 二叉树的定义

一、基本概念

1.二叉树是n(n>=0)个结点的有限集合:
① 或者为空二叉树,即n=0。

②或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一棵二叉树。

特点: ①每个结点至多只有两棵子树。

②左右子树不能颠倒(二叉树是有序树)

(二叉树是递归定义的二叉树)

五种状态:

1.空二叉树  2.只有左子树  3.只有右子树  4.只有根节点   5.左右子树都有

二、几种特殊的二叉树

1.满二叉树:以可高度为h,且还有2^h-1个结点的二叉树。

特点:①只有最后一层有叶子结点

②不存在度为1的结点

③按层序从1开始编号,结点i的左孩子为2i,右孩子为2i+1;结点i的父节点为[i/2](如果有的话,向下取整)--可以用顺序存储来实现。

2.完全二叉树:当且仅当其每个结点都与高度为h满二叉树中编号为1~n的结点一一对应时,称为完全二叉树

特点:①只有最后两层可能有叶子结点
②)最多只有一个度为1的结点
③同上③
④i<|n/2]为分支结点,i>|n/2]为叶子结点

(对于完全二叉树来说,如果某一个结点只有一个孩子,必然是左孩子。)

3.二叉排序树: 一棵二叉树或者是空二叉树,或者是具有如下性质的二叉树:

左子树上所有结点的关键字均小于根结点的关键字;

右子树上所有结点的关键字均大于根结点的关键字。

左子树和右子树又各是一棵二叉排序树。(可用于元素的排序、搜索)

 4.平衡二叉树:树上任一结点的左子树和右子树的深度之差不超过1.(有更高的搜素效率)

-----左边相比于右边,查找相同的数字,遍历的结点要少很多。

总结: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/887397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux开发者的CI/CD(11)jenkins变量

文章目录 1. **环境变量 (Environment Variables)**常见的环境变量:示例:2. **构建参数 (Build Parameters)**常见的构建参数类型:示例:3 **在 `stages` 块内定义局部变量**示例:使用 `script` 步骤定义局部变量4 变量引用陷阱在 Jenkins 中,变量是自动化流程中非常重要的…

部署实战(二)--修改jar中的文件并重新打包成jar文件

一.jar文件 JAR 文件就是 Java Archive &#xff08; Java 档案文件&#xff09;&#xff0c;它是 Java 的一种文档格式JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中&#xff0c;多出了一个META-INF/MANIFEST.MF 文件META-INF/MANIFEST.MF 文件在生成 JAR 文件的时候…

对象的大小

文章目录 一、对象大小 一、对象大小 对象是类实例化出来的&#xff0c;让我们分析一下类对象中哪些成员呢&#xff1f; 类实例化出的每个对象&#xff0c;每个都有独立的数据空间&#xff0c;所以对象中肯定包含 成员变量&#xff0c;那么成员函数是否包含呢&#xff1f; 首…

01-go入门

文章目录 Go语言学习1. 简介安装windows安装linux安装编译工具安装-goland 2. 入门2.1 Helloworld注释 2.2 变量初始化打印内存地址变量交换匿名变量作用域局部变量全局变量 2.3 常量iota 2.4 数据类型布尔整数浮点类型复数字符串定义字符串字符串拼接符定义多行字符串 map数据…

数据库的联合查询

数据库的联合查询 简介为什么要使⽤联合查询多表联合查询时MYSQL内部是如何进⾏计算的构造练习案例数据案例&#xff1a;⼀个完整的联合查询的过程 内连接语法⽰例 外连接语法 ⽰例⾃连接应⽤场景示例表连接练习 ⼦查询语法单⾏⼦查询多⾏⼦查询多列⼦查询在from⼦句中使⽤⼦查…

【H264】基于ffmpeg的NALU级别识别及python绘制

h264 nalu 级别(包级别)打印 【Fargo】27:ffmpeg ffprobe 和python分析h264文件并绘制 帧级别的分析,ffprobe -v trace -show_frames file.h264似乎对没有容器的h264文件,意义不大,时间戳什么的需要从包级别进行分析,而且h264文件的解析都是包级别的。 在ffmpeg中,可以…

LeetCode-632. Smallest Range Covering Elements from K Lists [C++][Java]

目录 题目描述 解题思路 【C】 【Java】 LeetCode-632. Smallest Range Covering Elements from K Listshttps://leetcode.com/problems/smallest-range-covering-elements-from-k-lists/description/ 题目描述 You have k lists of sorted integers in non-decreasing o…

UI自动化测试中公认最佳的设计模式-POM

一、概念 什么是POM&#xff1f; POM是PageObjectModule&#xff08;页面对象模式&#xff09;的缩写&#xff0c;其目的是为了Web UI测试创建对象库。在这种模式下&#xff0c;应用涉及的每一个页面应该定义为一个单独的类。类中应该包含此页面上的页面元素对象和处理这些元…

单片机(STM32)开发中常用的C语言基础语法(二)

9、goto语句与标签 goto语句用于无条件地转移到程序中的另一部分。它通常用于跳出循环或提前退出函数。然而&#xff0c;使用goto语句需要谨慎&#xff0c;因为过度使用它可能会导致代码难以理解和维护。 标签&#xff08;Label&#xff09;是一个代码标识符&#xff0c;后面…

柯西变异和正余弦改进的麻雀搜索算法及python实现

目录 柯西变异和正余弦改进的麻雀搜索算法第一部分:麻雀搜索算法概述1.1 麻雀搜索算法简介1.2 算法特点1.3 算法流程1. 初始化阶段2. 觅食者搜索阶段3. 监视者逃逸阶段4. 判断收敛条件1.4 公式描述第二部分:改进方法——柯西变异与正余弦机制2.1 改进思路2.2 柯西变异公式2.3…

Scala文件读写——成绩分析

根据文件解决下例问题 1.读入txt文件&#xff1a;按行读入 import scala.io.Sourceobject Test文件读写_成绩分析 {def main(args: Array[String]): Unit {//1.按行读入val source Source.fromFile("score.txt")val it source.getLines()it.next()//跳过第一行wh…

C# Winform 俄罗斯方块小游戏源码

文章目录 1.设计来源俄罗斯方块小游戏讲解1.1 主界面1.2 游戏界面1.3 游戏结束界面1.4 配置游戏界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcLeigh 文章地址&#xff1a;https:…

前端框架Vue3——响应式数据,v-on,v-show和v-if,v-for,v-bind

Vue的定义为渐进式的JavaScript框架。所谓渐进式&#xff0c;是指其被设计 为可以自底向上逐层应用。我们可以只使用Vue框架中提供的某层的功 能&#xff0c;也可以与其他第三方库整合使用。当然&#xff0c;Vue本身也提供了完整的 工具链&#xff0c;使用其全套功能进行项目的…

实验二 系统响应及系统稳定性

实验目的 &#xff08;1&#xff09;学会运用Matlab 求解离散时间系统的零状态响应&#xff1b; &#xff08;2&#xff09;学会运用Matlab 求解离散时间系统的单位取样响应&#xff1b; &#xff08;3&#xff09;学会运用Matlab 求解离散时间系统的卷积和。 实验原理及实…

.NET Core发布网站报错 HTTP Error 500.31

报错如图&#xff1a; 解决办法&#xff1a; 打开任务管理器》》服务》》找到这仨服务&#xff0c;右键启动即可&#xff0c;如果已经启动了就重启&#xff1a;

FFmpegFrameRecorder 切分视频文件时结束条件设置不当导致切分后的文件过短问题

问题 下游反馈使用 ffmpeg 切割后的音频文件&#xff0c;无法正确识别其声音的性别 排查流程 1&#xff0c;由于线上大部分用户上传音频后&#xff0c;进行切分后的音频都没问题&#xff0c;因此考虑到这些无法识别性别的音频&#xff0c;有格式问题&#xff0c;需要找出其共…

真题-桂城2018年六年级

01.整点 题目描述 在二维坐标系, 有一个圆&#xff0c;圆心在(0,0)&#xff0c;圆的半径是r。问圆内有多少个整点(所谓的整点就是横坐标和纵坐标都是整数的点)。 若点P的横坐标是整数a&#xff0c;纵坐标是整数b&#xff0c;那么只要满足aa bb < r*r, 那么P就是圆内的整点…

【快捷入门笔记】mySQL基本操作大全-运算符和句子

一、ORDER BY 排序 排序方式 1.升序&#xff1a;ASC&#xff08;默认就是升序&#xff09; 2.降序&#xff1a;DESC 3.如果有多个排序条件&#xff0c;前面的值一样时才会判断第二条件 --按照数学成绩排序 select*from Student ORDER BY math --按照数学成绩排序&#xff0c;…

麒麟安全增强-kysec

DAC: 自主访问控制是linux下默认的接入控制机制,通过对资源读、写、执行操作,保证系统安全 MAC:安全接入控制机制,由操作系统约束的访问控制,默认情况下,MAC不允许任何访问,用户可以自定义策略规则制定允许什么 ,从而避免很多攻击。 MAC强制访问控制常见的实现方式:…

java多线程——synchronized的偏向锁、轻量级锁和重量级锁

在Java中&#xff0c;synchronized关键字是用于实现线程同步的一种机制&#xff0c;它提供了偏向锁、轻量级锁和重量级锁三种锁状态来优化同步性能。以下是这三种锁的原理和使用方法的详细解释&#xff1a; 一、偏向锁&#xff08;Biased Locking&#xff09; 原理 偏向锁的目…