数据结构和算法-二叉排序树(定义 查找 插入 删除 时间复杂度)

文章目录

  • 二叉排序树
    • 总览
    • 二叉排序树的定义
    • 二叉排序树的查找
    • 二叉排序树的插入
    • 二叉排序树的构造
    • 二叉排序树的删除
      • 删除的是叶子节点
      • 删除的是只有左子树或者只有右子树的节点
      • 删除的是有左子树和右子树的节点
    • 查找效率分析
      • 查找成功
      • 查找失败
    • 小结

二叉排序树

总览

在这里插入图片描述

二叉排序树的定义

在这里插入图片描述

二叉排序树的查找

在这里插入图片描述
我们也可以用递归实现
在这里插入图片描述
但递归的最坏情况可能需要有h个函数调用栈帧,或者说h个函数同时执行
但循环的实现一直都是一个函数在执行

二叉排序树的插入

先查找找到插入的位置,然后mallloc一个新的空间,如果遇到与插入值一样的元素,则插入失败
函数参数是引用类型从而能够修改其值
在这里插入图片描述

二叉排序树的构造

首先T是空,会创造一个节点,其值和插入的值一样,这样就开始形成一颗树,接着插入过程和之前一样
在这里插入图片描述
不同序列对应的二叉排序树不一定相同,也不一定不同
在这里插入图片描述

二叉排序树的删除

删除的是叶子节点

直接删之后依然可以保存二叉树的特性
在这里插入图片描述

删除的是只有左子树或者只有右子树的节点

直接替代即可,此时依然满足,替换后,子树相对于父父树一定满足父树的相对于其父父树的性质
在这里插入图片描述
在这里插入图片描述

删除的是有左子树和右子树的节点

此时可以找到右子树的最小节点来替换(右子树的最左下节点)
在这里插入图片描述
在这里插入图片描述
此时可以找到左子树的最大节点来替换(左子树的最右下节点)
在这里插入图片描述
在这里插入图片描述

查找效率分析

查找成功

最坏的查找长度也是和这颗数的高度一样
在这里插入图片描述
如果使得二叉树的尽可能地平衡,那么二叉树的高度会越低
在这里插入图片描述

查找失败

查找失败时为落在空结点的位置,先补齐空结点
在这里插入图片描述

小结

在这里插入图片描述

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

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

相关文章

【LeetCode:1954. 收集足够苹果的最小花园周长 | 等差数列 + 公式推导】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

C语言—每日选择题—Day60

指针相关博客 打响指针的第一枪:指针家族-CSDN博客 深入理解:指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 下列for循环的循环体执行次数为() for(int i 10, j 1; i j 0; i, --j) A:0 B:1 C&#…

蓝桥小课堂-平方和【算法赛】

问题描述 蓝桥小课堂开课啦! 平方和公式是一种用于计算连续整数的平方和的数学公式。它可以帮助我们快速求解从 1 到 n 的整数的平方和,其中 n 是一个正整数。 平方和公式的表达式如下: 这个公式可以简化计算过程,避免逐个计算…

2024年【制冷与空调设备运行操作】免费试题及制冷与空调设备运行操作试题及解析

题库来源:安全生产模拟考试一点通公众号小程序 制冷与空调设备运行操作免费试题根据新制冷与空调设备运行操作考试大纲要求,安全生产模拟考试一点通将制冷与空调设备运行操作模拟考试试题进行汇编,组成一套制冷与空调设备运行操作全真模拟考…

【FPGA】分享一些FPGA协同MATLAB开发的书籍

在做FPGA工程师的这些年,买过好多书,也看过好多书,分享一下。 后续会慢慢的补充书评。 【FPGA】分享一些FPGA入门学习的书籍【FPGA】分享一些FPGA协同MATLAB开发的书籍 【FPGA】分享一些FPGA视频图像处理相关的书籍 【FPGA】分享一些FPGA高速…

python时间处理方法和模块

在 Python 中,有一些内置的模块和库,可以帮助我们处理日期和时间的表示、计算和转换。 1. 时间模块(time) Python 的 time 模块提供了一系列函数来处理时间相关的操作。通过这个模块,可以获取当前时间、睡眠指定时间…

【设计模式】RBAC 模型详解

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、什么是 RBAC 呢? 二、RBAC 的组成 三、RBAC 的优缺点 3.1 优点: 3.2 缺点: 四、RBAC 的…

如何用Python画坤坤?

前言 最近闲得慌,突然想起坤坤了,那就画一个吧。 一、Python画坤坤 坤坤大家都熟悉不过了,也就是蔡徐坤。 代码: from turtle import * from math import * #高级椭圆参数方程(颜色),sita为…

MySQL报错:1366 - Incorrect integer value: ‘xx‘ for column ‘xx‘ at row 1的解决方法

我在插入表数据时遇到了1366报错,报错内容:1366 - Incorrect integer value: Cindy for column name at row 1,下面我演示解决方法。 根据上图,原因是Cindy’对应的name字段数据类型不正确。我们在左侧找到该字段所在的grade_6表&…

【图文教程】windows 下 MongoDB 介绍下载安装配置

文章目录 介绍MySQL 之间的区别和适用场景差异数据模型:查询语言:可扩展性:数据一致性: 下载安装环境变量配置 介绍 MongoDB 是一种开源的、面向文档的 NoSQL 数据库管理系统。它使用灵活的文档模型来存储数据,这意味…

HarmonyOS - 基础组件绘制

文章目录 所有组件开发 tipsBlankTextImageTextInputButtonLoadingProgress 本文改编自&#xff1a;<HarmonyOS第一课>从简单的页面开始 https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101667360160710997 所有组件 在 macOS 上&#xff0c;组…

计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)

目录 介绍 组成部分 PPP帧格式 透明传输 字节填充法 比特填充法 差错检测 工作状态 本篇我们介绍点对点协议PPP 介绍 点对点协议PPP&#xff08;Point-to-Point Protocol&#xff09;是目前使用最广泛的点对点数据链路层协议。 请大家想想看&#xff1a;一般的英特…

算法模板之队列图文详解

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;算法模板、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. ⛳️模拟队列1.1 &#x1f514;用数组模拟实现队列1.1.1 &#x1f47b;队列的定…

Kafka集群架构服务端核心概念

目录 Kafka集群选举 controller选举机制 Leader partition选举 leader partition自平衡 partition故障恢复机制 follower故障 leader故障 HW一致性保障 HW同步过程 Epoch Kafka集群选举 1. 在多个broker中, 需要选举出一个broker, 担任controller. 由controller来管理…

Hadoop入门学习笔记——三、使用HDFS文件系统

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 三、使用HDFS文件系统3.1. 使用命令操作HDFS文件系统3.1.…

Simulink元件

constant 输出常数/标量 这样我们就只输出了一个常数 输出一维数组/矢量 这样我们就输出了1-5一共5个数字 输出二维数组 这样我们就输出了4个数字 选择框Interpret vector parameters as 1-D 如果标量或者矩阵&#xff0c;勾与不勾都一样。 如果是向量&#xff0c;勾选则表…

Hago 的 Spark on ACK 实践

作者&#xff1a;华相 Hago 于 2018 年 4 月上线&#xff0c;是欢聚集团旗下的一款多人互动社交明星产品。Hago 融合优质的匹配能力和多样化的垂类场景&#xff0c;提供互动游戏、多人语音、视频直播、 3D 虚拟形象互动等多种社交玩法&#xff0c;致力于为用户打造高效、多样、…

2024华为OD机试真题指南宝典—持续更新(JAVAPythonC++JS)【彻底搞懂算法和数据结构—算法之翼】

PC端可直接搜索关键词 快捷键&#xff1a;CtrlF 年份关键字、题目关键字等等 注意看本文目录-快速了解本专栏 文章目录 &#x1f431;2024年华为OD机试真题&#xff08;马上更新&#xff09;&#x1f439;2023年华为OD机试真题&#xff08;更新中&#xff09;&#x1f436;新…

springCould中的consul-从小白开始【4】

目录 1.consul介绍 ❤️❤️❤️ 2.安装 ❤️❤️❤️ 3.创建8006模块 ❤️❤️❤️ 4.创建80模块❤️❤️❤️ 1.consul介绍 ❤️❤️❤️ Consul 是一种用于服务发现、配置和分布式一致性的开源软件。它由HashiCorp开发和维护&#xff0c;可用于帮助构建和管理现代化的分布…

设计模式篇---职责链模式

文章目录 概念结构实例总结 概念 职责链模式&#xff1a;避免将一个请求的发送者与接收者耦合在一起&#xff0c;让多个对象都有机会处理请求。将接收请求的对象连接成一条链&#xff0c;并且沿着这条链传递请求&#xff0c;直到有一个对象能够处理它为止。 比如大学期间&…