【数据结构】二叉树基础入门

在这里插入图片描述

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 :阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍

文章目录

  • 一、二叉树的概念
  • 二、二叉树的特点
  • 三、特殊的二叉树
    • 1.满二叉树:
    • 2.完全二叉树:
  • 四、二叉树的存储
    • 1.数组存储:
    • 2.链式存储

一、二叉树的概念

一棵二叉树是结点的一个有限集合,该集合:

  1. 或者为空
  2. 由一个根节点加上两棵别称为左子树和右子树的二叉树组成
    如下图:在这里插入图片描述

二、二叉树的特点

1.二叉树的度最大为2.即一个节点最多有两个孩子。
2.二叉树可以只有一个根节点,度为0.
3.二叉树的子树有左右之分,是一个有序树。

三、特殊的二叉树

1.满二叉树:

一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。

在这里插入图片描述
特点:一个H层的满二叉树,其节点数=2^H-1

2.完全二叉树:

1.在完全二叉树中,除了最后一层外,所有层的节点数量都是满的,且最后一层的节点都集中在左侧。
2.如果一个结点的索引是 i,则它的左子节点的索引是 2i,右子节点的索引是 2i+1。反之,如果一个节点的索引是 i,则它的父节点的索引是 i/2。

满二叉树是一种特殊的完全二叉树。
在这里插入图片描述
特点:
1)相对于其他类型的二叉树,它更容易实现和操作。
2)具有 n 个节点的完全二叉树的高度为 log(n)。
3)在完全二叉树中,除了最后一层可能不满外,其他层都是满的。

最少:2^(H-1)-1+1 = 2^(H-1)
最多:相当于满二叉树:2^H-1
一个H层的完全二叉树,其节点数范围[2^(H-1)~2^H-1]
在这里插入图片描述

四、二叉树的存储

1.数组存储:

这种存储方式适用于完全和满二叉树。还有
在这里插入图片描述
计算:
给定双亲节点,求
左孩子=双亲节点*2+1
右孩子=双亲节点*2+2
给定孩子节点,求
双亲节点=(孩子节点-1)/2

2.链式存储

对于普通二叉树来说,不适合顺序存储方式,因为有可能在补充为完全二叉树过程中,补充太多的0,而浪费大量空间,因此普通二叉树一般使用链式存储。

每一个节点的组成如下图所示
在这里插入图片描述
在这里插入图片描述
具体结构如下图所示:
在这里插入图片描述

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

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

相关文章

机器学习从0到1

机器学习,即machine learning 感谢easyai的精彩讲解: easyai网址 文章目录 机器学习的概念机器学习的原理监督学习,非监督学习,强化学习监督学习非监督学习强化学习 机器学习实操的7个步骤现在举一个具体的任务来说明这些步骤1.收…

在Postman的脚本中使用pm对象获取接口的请求参数

在Postman的脚本中使用pm对象获取接口的请求参数 1、获取在Query Params中输入的参数全局变量的引用(以在header中引用为例)2、获取在Body中输入的参数3、pm对象常用用法 1、获取在Query Params中输入的参数 query params页面 在tests中写脚本做后置处…

【ArcGIS pro】-使用arcpy一次保存多个布局

在arcgis Pro中常常会创建多个地图和多个布局,本文介绍如何使用代码,一次保存多个布局文件 在arcgis pro中打开python视图 找到工程位置 在python视图中输入如下代码 保存为pdf import arcpy# 设置当前项目,这通常是一个.aprx文件 projec…

华为云云耀云服务器L实例评测|华为云耀云L搭建zerotier服务测试

0. 环境 - Win10 - 云耀云L服务器 1. 安装docker 检查yum源,本EulerOS的源在这里: cd /etc/yum.repos.d 更新源 yum makecache 安装 yum install -y docker-engine 运行测试 docker run hello-world 2. 运行docker镜像 默认配…

【广州华锐互动】AR远程协助技术提供实时远程协作和指导

随着科技的不断发展,企业的运营管理模式也在不断地进行创新和升级。在这个过程中,AR(增强现实)技术的应用逐渐成为了企业运维管理的新兴趋势。AR远程协助平台作为一种结合了AR技术和远程协助理念的技术手段,为企业运维…

信息安全技术 办公设备安全测试方法

声明 本文是学习GB-T 38558-2020 信息安全技术 办公设备安全测试方法. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 办公设备安全测试方法范围 本标准规定了办公设备安全技术要求和安全管理功能要求的测试方法。 本标准适用于测试机构、办公设备厂…

Edge浏览器没有让我失望! 今天终于可以在win10中模拟IE内核进行前端测试了!

前言 😝 ietest现在是不是不好用了? Edge浏览器仿真是不是不见了? 如图 如果我们在前端开发javascript遇见一些老旧的语法标准,想要测试一下都难,想想都抓狂!😤😤 不过不用担心,经过这几天的…

Idea上传gitee注意事项,push reject错误

一、 你在项目所在文件夹的空白处,鼠标右键,点击git bash here 会自动进入该目录下 二、 如果你遇到push reject 输入下面的命令: git pull origin master –allow-unrelated-historiesgit push -u origin master -f再次push就好了。 三、 …

wpf C# 用USB虚拟串口最高速下载大文件 每包400万字节 平均0.7s/M,支持批量多设备同时下载。自动识别串口。源码示例可自由定制。

C# 用USB虚拟串口下载大文件 每包400万字节 平均0.7s/M。支持批量多设备同时下载。自动识别串口。可自由定制。 int 32位有符号整数 -2147483648~2147483647 但500万字节时 write时报端口IO异常。可能是驱动限制的。 之前用这个助手发文件,连续发送&#xff0…

【python爬虫】批量识别pdf中的英文,自动翻译成中文上

不管是上学还是上班,有时不可避免需要看英文文章,特别是在写毕业论文的时候。比较头疼的是把专业性很强的英文pdf文章翻译成中文。我记得我上学的时候,是一段一段复制,或者碰到不认识的单词就百度翻译一下,非常耗费时间。本文提供批量识别pdf中英文的方法,后续文章实现自…

PatchMatchNet 学习笔记 译文 深度学习三维重建

9 PatchMatchNet CVPR-2021 patchmatchnet源码下载 PatchMatchNet 代码注释版 下载链接(注释非常详细,较源码结构有调整,使用起来更方便) PatchMatchNet-CVPR-2021(源码、原文+注释+译文+批注) 9.0 主要特点 金字塔,基于传统的PatchMatch算法,精度高,速度快 Pa…

后端SpringBoot+前端Vue前后端分离的项目(二)

前言:完成一个列表,实现表头的切换,字段的筛选,排序,分页功能。 目录 一、数据库表的设计 ​编辑二、后端实现 环境配置 model层 mapper层 service层 service层单元测试 controller层 三、前端实现 interface接…

网管实战⑼:配置华为S5720交换机

配置好汇聚交换机后,需要根据单位情况配置具体的接入交换机。 自从2019年12月底配置好交换机后,基本上都没有怎么操作交换机了。那时候使用的是H3C交换机,主要是H3C S7706、H3C S5120、H3C S5130、H3C S5500、H3C S3600等型号的交换机&#x…

快速排序详解

前言 快排是不稳定的排序,快排的适用场景是无序的序列,例如此时有一个数组是有序的 / 逆序的,此时的快排效率是最慢的。 过程: 找一个基准值,找的过程就以挖坑法的方式填坑,第一次排序以挖坑发填完坑之后&a…

mfc 浮动窗口

参考 MFC模拟360悬浮窗加速球窗口

yolo物体检测系列实战1:yolo-v1整体思想与网络架构

1、物体检测经典方法 two-stage(两阶段):Faster-rcnn Mask-Rcnn系列one-stage(单阶段):YOLO系列 最核心的优势:速度非常快,适合做实时检测任务!但是缺点也是有的&#x…

ue5 物理场的应用

cable mat wpo particle 流体粒子 choas 破损 刚体 布料 cloud abp blueprint riggedbody 体积雾 毛发 全局的 局部的 非均匀的 连续变化的 也可以多个叠加 从全局 到 范围 除了vector还有scalar的值也就是0--1的黑白灰的值 但是最终输出的值的类型还是取决于这个 一…

渗透测试漏洞原理之---【不安全的反序列化】

文章目录 1、序列化与反序列化1.1、引入1.2、序列化实例1.2.1、定义一个类1.2.2、创建 对象1.2.3、反序列化1.2.4、对象注入 2、漏洞何在2.1、漏洞触发2.1.2、定义一个类2.1.3、定义一个对象2.1.3、反序列化执行代码 2.2 为什么会这样 3、反序列化漏洞攻防3.1、PHP反序列化实例…

51单片机的简易计算器数码管显示仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

51单片机的简易计算器数码管显示仿真设计 1.主要功能:2.仿真3. 程序代码4. 原理图5. 设计报告6. 设计资料内容清单&&下载链接 51单片机的简易计算器数码管显示仿真设计( proteus仿真程序原理图报告讲解视频) 仿真图proteus7.8及以上 程序编译器…

MySQL主从分离读写复制

在高负载的生产环境里,把数据库进行读写分离,能显著提高系统的性能。下面对MySQL的进行读写分离。 试验环境 A机:IP:192.168.0.1 mysql版本:mysql-5.6.4,主数据服务器(只写操作) B机:IP:192.…