当前位置: 首页 > news >正文

续二叉搜索树递归玩法

文章目录

    • 一、插入递归
    • 二、寻找递归(非常简单,走流程就行)
    • 三、插入递归(理解起来比较麻烦)

在这里插入图片描述


先赞后看,养成习惯!!!^ _ ^<3 ❤️ ❤️ ❤️
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!
所属专栏:C++进阶
在这里插入图片描述

一、插入递归

	bool _InsertR(const K& key){return _Insert(_root, key);}
bool _Insert(Node*& root, const K& key)
{if (root == nullptr){root = new Node(key);}if (root->_key > key){return _Insert(root->left, key);}else if (root->_key < key){return _Insert(root->right, key);}else{return false;}
}

代码解读
在这里插入图片描述

二、寻找递归(非常简单,走流程就行)

	bool _FindR(const K& key){return _Find(_root, key);}bool _Find(Node* root, const K& key)
{if (root == nullptr)return false;if (root->_key > key){return _Find(root->left,key);}else if (root->_key < key){return _Find(root->right,key);}else{return true;}
}

三、插入递归(理解起来比较麻烦)

	bool _EraseR(const K& key){return _Erase(_root, key);}bool _Erase(Node*& root, const K& key)
{if (root == nullptr)return false;if (root->_key > key){return _Erase(root->left, key);}else if (root->_key < key){return _Erase(root->right, key);}else{Node* del = root;if (root->left == nullptr){root = root->right;}else if (root->right == nullptr){root = root->left;}//递归转化到子树去删除else{Node* leftmax = root->left;while (leftmax->right){leftmax = leftmax->right;}swap(root->_key, leftmax->_key);return _Erase(root->left, key);}delete del;return true;}

代码解读
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

续二叉搜索树递归玩法

文章目录 一、插入递归二、寻找递归&#xff08;非常简单&#xff0c;走流程就行&#xff09;三、插入递归&#xff08;理解起来比较麻烦&#xff09; 先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;^ _ ^<3 ❤️ ❤️ ❤️ 码字不易&#xff0c;大家的…...

DDD 的四层领域模型是怎样的?包含哪些基础概念?

DDD的四层领域模型如下所示&#xff1a; 展现层&#xff1a;这一层负责向用户显示信息和解释用户命令&#xff0c;完成前端界面逻辑。并将用户请求传递给应用层。应用层&#xff1a;这一层是很薄的一层&#xff0c;负责协调领域层中的领域对象&#xff0c;组成具体应用场景。应…...

AI 在医疗保健领域的应用:技术、趋势和前景

人工智能&#xff08;AI&#xff09;在医疗保健领域的应用已经成为引人瞩目的发展方向&#xff0c;其在医学影像分析、疾病诊断和个性化治疗等方面展现出了巨大潜力。本文将深入探讨这些技术应用和未来的发展趋势。 医学影像分析 医学影像分析是AI在医疗领域中应用最广泛的领…...

SVG XML 格式定义图形入门介绍

SVG SVG means Scalable Vector Graphics. SVG 使用 XML 格式定义图形SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失SVG 是万维网联盟的标准 Hello World Use SVG in html and you can see: Link to the SVG file You can use <a> tag to link to the svg…...

MYSQL数据库的故障排除与优化

目录 一.MySQL单实例故障排查 故障现象1 故障现象 2 故障现象 3 故障现象 4 故障现象 5 故障现象 6 故障现象 7 故障现象 8 二.主从环境常见故障 1.故障一 2. 故障二 3. 故障三 三. 优化 1.SQL优化 2. 架构优化 3.硬件方面 1.1 关于CPU 1.2 关于内存 1.3 关…...

C++从入门到精通——入门知识

1. C关键字(C98) C总计63个关键字&#xff0c;C语言32个关键字 2. 命名空间 在C/C中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称都将存在于全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的就是对标识符的名…...

一些题目学习

1.打开文件添加helloworld public class Saier {public static void main(String[] args){String path"C:\\Users\\sjg\\Desktop\\abc.txt";String text"hello world";try {File file new File(path);FileWriter fileWriter new FileWriter(file,true);…...

Linux上管理文件系统

Linux上管理文件系统 机械硬盘 机械硬盘由多块盘片组成&#xff0c;它们都绕着主轴旋转。每块盘片上下方都有读写磁头悬浮在盘片上下方&#xff0c;它们与盘片的距离极小。在每次读写数据时盘片旋转&#xff0c;读写磁头被磁臂控制着不断的移动来读取其中的数据。 所有的盘片…...

【Linux】寿司线程池{单例模式之懒汉模式下的线程池}

文章目录 回顾单例模式0.多线程下的单例模式的意义1.什么是单例模式1.0设计模式1.1C单例模式的介绍及原理1.2拷贝构造和赋值重载的处理1.3if (nullptr ptr)&#xff0c;nullptr放在比较运算符的前面?1.4实现单例模式的方式 2.实现懒汉方式的单例模式2.1单线程的单例模式2.2多…...

Docker资源管理和分配指南

什么是cgroup&#xff1f; cgroups其名称源自控制组群&#xff08;control groups&#xff09;的简写&#xff0c;是Linux内核的一个功能&#xff0c;用来限制、控制与分离一个进程组&#xff08;如CPU、内存、磁盘输入输出等&#xff09;。 什么是Docker资源限制&#xff1f;…...

为什么索引的底层结构是B+树

B树 1.数据库与数据交互的单位是page,而B树的每个节点都是一个page,访问一个节点&#xff0c;就相当于进行了一次I/O操作。所以访问的节点越少&#xff0c;查找效率越大。而B树是矮胖的&#xff0c;查找深度也不会太大。 2.B树中的节点是有序存储的&#xff0c;对于范围查询、排…...

NLP学习路线指南总结

当然可以&#xff0c;以下是一份较为详细的NLP学习路线指南&#xff0c;帮助你逐步掌握自然语言处理的核心技术和应用。 一、基础知识与技能 语言学基础&#xff1a; 语言学基本概念&#xff1a;语音、语法、语义等。语言的层次与分类&#xff1a;语音学、音系学、句法学、语…...

试过了,ChatGPT确实不用注册就可以使用了!

看到官网说不用登录也可以直接使用ChatGPT 我们来试一下 直接打开官网 默认是直接进入了chatgpt3.5的聊天界面 之前是默认进的登录页面 聊一下试试 直接回复了&#xff0c;目前属于未登录状态&#xff0c;挺好&#xff01; 来试下ChatGPT4 跳转到了登录页面 目前来看gpt4还…...

CANoe自带的TCP/IP协议栈中TCP的keep alive机制是如何工作的

TCP keep alive机制我们已经讲过太多次,车内很多控制器的TCP keep alive机制相信很多开发和测试的人也配置或者测试过。我们今天想知道CANoe软件自带的TCP/IP协议栈中TCP keep alive机制是如何工作的。 首先大家需要知道TCP keep alive的参数有哪些?其实就三个参数:CP_KEEP…...

【C++练级之路】【Lv.18】哈希表(哈希映射,光速查找的魔法)

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《算法神殿》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 引言一、哈希1.1 哈希概念1.2 哈希函数1.3 哈希冲突 二、闭散列2.1 数据类型2.2 成员变量2.3 默认成员函数2.…...

「PHP系列」If...Else语句/switch语句

文章目录 一、If...Else语句1. 基本语法2. 带有 elseif 的语法3. 示例示例 1&#xff1a;基本 if...else 结构示例 2&#xff1a;使用 elseif示例 3&#xff1a;嵌套 if...else 结构 4. 注意事项 二、switch语句1. 基本语法2. 示例示例 1&#xff1a;基本 switch 结构示例 2&am…...

Ubuntu部署BOA服务器

BOA服务器概述 BOA是一款非常小巧的Web服务器&#xff0c;源代码开放、性能优秀、支持CGI通用网关接口技术&#xff0c;特别适合用在嵌入式系统中。 BOA服务器主要功能是在互联嵌入式设备之间进行信息交互&#xff0c;达到通用网络对嵌入式设备进行监控&#xff0c;并将反馈信…...

安卓Glide加载失败时点击按钮重新加载图片

需求 假设此时已经用load指定一个url: String&#xff0c;又用into指定了一个img: ImageView开始加载&#xff0c;但是网络突然中断&#xff0c;导致图片加载失败。在这种情况下&#xff0c;想要通过点击一个Button重新加载。 Glide.with(context).load(url).placeholder(loa…...

linux下python服务定时(自)启动

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享&#xff0c;包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…...

awk命令进阶操作(二)

awk模块 awk模块awk的BEGIN模块和END模块BEGIN模块BEGIN 常见错误END模块END模块 常见错误 案例计算1~100的累加和统计系统中有多少用户的shell类型是/bin/bash awk模块 awk的BEGIN模块和END模块 格式 awk BEGIN{}{}END{} 文件名BEGIN模块 用于定义一个动作&#xff0c;用{…...

VRM Converter for VRChat:打破虚拟化身平台壁垒的技术解决方案

VRM Converter for VRChat&#xff1a;打破虚拟化身平台壁垒的技术解决方案 【免费下载链接】VRMConverterForVRChat 项目地址: https://gitcode.com/gh_mirrors/vr/VRMConverterForVRChat 在虚拟内容创作领域&#xff0c;平台壁垒一直是开发者面临的最大挑战。当你在V…...

CANN/GE动态输入Python构图示例

样例使用指导 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前…...

微信AI机器人搭建全攻略:基于WeChatFerry与ChatGPT的自动化消息回复

1. 项目概述与核心思路 最近在折腾一个挺有意思的玩意儿&#xff1a;一个能帮你自动回复微信消息的AI机器人。这项目叫 wechat-bot &#xff0c;虽然原作者已经暂停维护&#xff0c;但它的核心思路和实现方式&#xff0c;对于想自己动手搞点自动化工具的朋友来说&#xff0c…...

CTFd平台自动化管理:基于MCP协议的插件开发与集成实践

1. 项目概述&#xff1a;CTFd与MCP的融合实践最近在搭建和维护CTF&#xff08;Capture The Flag&#xff0c;夺旗赛&#xff09;平台时&#xff0c;我遇到了一个挺有意思的项目&#xff1a;AaryaBhusal/ctfd-mcp。简单来说&#xff0c;这是一个为CTFd平台设计的MCP&#xff08;…...

LOSEHU固件深度解析:泉盛UV-K5/K6全功能固件架构与实战部署指南

LOSEHU固件深度解析&#xff1a;泉盛UV-K5/K6全功能固件架构与实战部署指南 【免费下载链接】uv-k5-firmware-custom 全功能泉盛UV-K5/K6固件 Quansheng UV-K5/K6 Firmware 项目地址: https://gitcode.com/gh_mirrors/uvk5f/uv-k5-firmware-custom LOSEHU固件是一款专为…...

IP第一次作业

...

企业级AI低代码平台kweaver-dip:架构解析与工作流实战

1. 项目概述&#xff1a;一个面向企业级AI应用开发的低代码平台 最近在和一些做企业数字化转型的朋友聊天&#xff0c;大家普遍提到一个痛点&#xff1a;AI能力很强&#xff0c;但想把它真正用起来&#xff0c;门槛实在太高了。不是每个团队都有能力养一支算法工程师队伍&#…...

ViGEmBus虚拟游戏控制器驱动终极指南:Windows内核级游戏手柄模拟深度解析

ViGEmBus虚拟游戏控制器驱动终极指南&#xff1a;Windows内核级游戏手柄模拟深度解析 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在Windows游戏开发与输…...

GoAmzAI:开源AI工具箱如何自动化内容创作与分发工作流

1. 项目概述&#xff1a;一个面向内容创作者的AI驱动工具集最近在和一些做内容运营和自媒体的朋友聊天&#xff0c;发现大家普遍面临一个痛点&#xff1a;内容创作的效率瓶颈。无论是写一篇深度文章、策划一个视频脚本&#xff0c;还是管理多个平台的账号&#xff0c;从灵感到最…...

Java多线程:从入门到进阶

Java多线程&#xff1a;从入门到进阶 1. 引入&#xff1a;为什么需要多线程&#xff1f; 1.1 单线程的瓶颈 假设你要下载三个文件&#xff0c;单线程的做法是&#xff1a;一个个下载&#xff0c;总时间 文件1 文件2 文件3。 downloadFile1(); // 等待完成 downloadFile2();…...