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

c++:AVL树

1.概念

由于二叉搜索树不能确保为近似完全二叉树的结构,节点相同的情况下,高度可能会很高,高度有可能会很低,所以搜索次数不能稳定维持在logn级别。我们在二叉搜索树的基础上进行平衡调整就可以控制搜索次数稳定在logn级别。

而AVL树就是一个控制了平衡的二叉搜索树。

性质:所有子树都是AVL树,且左右子树的高度差都不超过1

平衡因子:用当前根节点的右子树高度减去左子树高度(也可以左减右,不过相应的逻辑也要反过来),得到的值可以为0/1/-1,那么这个值就是当前根节点的平衡因子大小

有了平衡因子之后我们就可以很直观的知道这棵树是不是平衡的

2.AVL树部分结构实现

2.1框架构建

 (1)节点

(2)AVL树

2.2插入 

2.2.1总体过程

AVL树(二叉平衡搜索树)插入的大概过程:

1.按照搜索二叉树的规则进行插入(保证是二叉搜索树)

2.更新祖先节点的平衡因子,最坏的情况需要更新到根节点

情况1:若没有出现失衡节点,那么更新完平衡因子后就结束插入

情况2:若出现了失衡节点,那么需要根据具体情况进行旋转,旋转的本质是将高度降低,让祖先节点平衡因子不改变,从而控制平衡因子变化只在局部

2.2.2平衡因子更新

 原则:

1.平衡因子 = 右子树高度 - 左子树高度

2.只有子树高度变化才会影响根节点的平衡因子

推论:

1.节点插入侧为空

2.结点右侧插入节点,根节点平衡因子++,左侧插入节点,根节点平衡因子--

3.若根节点平衡因子从-1/1变为0,则不用向上更新平衡因子

4.若根节点平衡因子从0变为1/-1,则需要向上更新平衡因子

5.更新后父节点为2/-2,则进行旋转,旋转后也不需要向上更新平衡因子

解释:

推论2:由于平衡因子是右子树高度减左子树高度,而结点右侧插入节点会导致右子树高度++,而左子树高度没变化,从而根节点平衡因子++。左侧插入同理

图示:

推论3:若根节点一开始平衡因子为-1/1,且插入后平衡因子变为0,说明原本有一侧存在节点,插入后左右两侧高度相同,对于根节点的祖先节点来说子树高度没变,不用更新平衡因子。

图示:

推论4:一开始平衡因子为0,说明原本根节点两侧为空,插入后平衡因子变为-1/1,说明左右任意一侧插入了节点,高度变化了,此时对于根节点的父节点来说左右子树高度差变化,平衡因子也会变化,所以局部没有控制高度不变,需要把根节点当成新的cur节点,根节点的父节点当成新的父节点进行判断

图示:

1.

2.

2.2.3插入节点与平衡因子更新

 (1)按照搜索二叉树的逻辑插入cur节点

由于我们在AVL树引入了父节点在树的节点中,所以这里插入后还需要维护_parent指针指向

(2)平衡因子更新

第一步:更新父节点平衡因子

根据插入节点cur的位置判断平衡因子++还是--

虽然理论上我们的parent只可能左侧指向cur或者右侧指向cur,但是不能确保前面的代码是否有问题,所以我们还需要assert检查一下

第二步:向上更新祖先节点的平衡因子

分三种情况:

1.父节点平衡因子为0,说明parent为根节点的树高度没变,不用向上更新

2.父节点平衡因子为1、-1,说明当前局部树高度变了,但是没失衡,向上更新。

注意:如果中途更新完了就没事,如果最后根节点也是-1/1就直接退出,所以我们的循环结束条件是parent不为nullptr

3.父节点平衡因子为2/-2,说明节点失衡,进行旋转,然后不用向上更新

2.2.4 旋转

旋转的原则:

1.旋转后满足搜索树关系

2.将树的高度变回插入前,从不平衡变平衡

(1)右单旋:父节点和cur节点都是左树高于右树

图示:

提示:所有矩形方框都表示满足AVL树结构的树

(1)插入前节点情况

整棵树的高度为h+2

(2)插入后节点情况

(3)旋转后情况

旋转之后不存在失衡因子,且整棵树的高度变回了插入前的h+2,从而局部树高度无变化,不用向上更新。

旋转方式:失衡节点往下扭,新局部根节点的右子树给到失衡节点的左子树

这种旋转方式可以满足搜索树的关系,且可以让不平衡的树变平衡,整个树的高度也和插入之前一样。

从局部来看:让局部树变平衡了

从全局来看:没有继续向上影响祖先节点的平衡因子

右单旋前提:

parent的平衡因子为-2,cur的平衡因子为-1

右单旋实现:

一共分为三步

第一步:创建subl与sublr变量并改变节点的指向

subl相当于图示中的1,sublr相当于图示中的1的右子树

第二步:更新父节点指向

对于parent来说很明确,直接指向subl即可

对于sublr:由于sublr是可能为空的,所以我们需要在sublr不为空的前提下更新其父节点

对于subl:他现在变成了新的根节点,但是不确定他是局部根节点还是全局根节点。

若为全局:parentParent就为空,我们改变根节点为subl,且更新subl的父节点为nullptr

若为局部:将parentParent指向parent的那一侧指向subl

第三步:更新平衡因子

只有subl和parent的树高度发生了变化,且最后平衡因子都变为了0。

(2)左单旋:父节点和cur节点都是右树高于左树

与右单旋同理,将对应操作翻转即可

图示:

(1)插入前

(2)插入后

(3)旋转后

左单旋前提:

parent平衡因子为2,cur平衡因子为1

左单旋实现:

 (3)左右双旋:父节点是左树更高,cur节点是右树更高

左右双旋分为三种情况:

总图示:

我们在这种情况下单次旋转式无法解决问题的,所以我们需要进行两次旋转,而旋转需要我们将h+1处的树展开才能进行第一次旋转

我们将1右侧的AVL树拆开后就可以根据h的大小和节点插入位置分成三种情况

情况1图示:h>0且节点插入在左侧

     bf1: 1    bf2:-1   bf3:-2

左旋后:

右旋后:

bf1 : 0   bf2:0   bf3:1

情况2图示:h>0且节点插入在右侧

bf1:1 bf2:1 bf3:-2

左旋后:

右旋后:

bf1:-1 bf2:0 bf3:0

情况3图示:h==0,节点直接插入

bf1: 1   bf2: 0   bf3:-2

左旋后:

右旋后:

bf1: 0   bf2: 0   bf3:0

旋转方式:先以cur节点为根节点左旋,然后以parent为根节点右旋

左右双旋前提:

parent的平衡因子为-2,cur的平衡因子为1

左右双旋实现:

(1)进行旋转

由于三种情况中不同的部分就是sublr的平衡因子,所以我们可以先记录sublr的平衡因子,然后根据他的值将三种情况分别处理

(2)根据三种调整平衡因子

由于右旋和左旋的代码中把双旋情况下不应该置为0的平衡因子变为了0,所以我们后面需要对parent和subl,sublr的平衡因子统一修改

最后也需要把特殊情况进行处理,如果bf不是0.1.-1的这三种情况,那么我们就要报错

 (4)右左双旋:父节点是右树更高,cur节点是左树更高

和左右双旋同理

右左双旋前提:

parent的平衡因子为2,cur的平衡因子为-1

代码实现:

相关文章:

c++:AVL树

1.概念 由于二叉搜索树不能确保为近似完全二叉树的结构,节点相同的情况下,高度可能会很高,高度有可能会很低,所以搜索次数不能稳定维持在logn级别。我们在二叉搜索树的基础上进行平衡调整就可以控制搜索次数稳定在logn级别。 而AV…...

HTML编辑MP4保存名称

上图是HTML的界面,需要点击EDIT_MP4的选项,然后就出现文本框输入MP4名称。输入对应的MP4文件名称后,则点击Add_MP4按钮就可以把MP4的名称修改到json文件里面,json文件是network_detail.json文件。 HTML和CGI程序的交互 上图是htm…...

以太坊AI代理与PoS升级点燃3月市场热情,2025年能否再创新高?

币热网深度报道:以太坊AI代理与PoS升级引爆3月热潮,2025年能否再攀历史新高? 原文来源:币热网 - 区块链信息资讯平台 以太坊升级,市场热情高涨 近期,以太坊市场犹如被一股神秘力量点燃,掀起了…...

IDEA2024又一坑:连接Docker服务连不上,提示:Cannot run program “docker“: CreateProcess error=2

为新电脑安装了IDEA2024版,因为局域网中安装有Docker,所以这台电脑上没有安装,当运行时发现死活连不上Docker报:Cannot run program “docker“: CreateProcess error2 分析: Docker服务有问题 其它电脑都能连,排除 网…...

css基本功

为什么 ::first-letter 是伪元素&#xff1f; ::first-letter 的作用是选择并样式化元素的第一个字母&#xff0c;它创建了一个虚拟的元素来包裹这个字母&#xff0c;因此属于伪元素。 grid布局 案例一 <!DOCTYPE html> <html lang"zh-CN"><head&…...

ALSA vs OSS:Linux 音频架构的演变与核心区别

在 Linux 音频系统的发展过程中&#xff0c;OSS&#xff08;Open Sound System&#xff09; 和 ALSA&#xff08;Advanced Linux Sound Architecture&#xff09; 曾分别在不同阶段承担着音频管理的角色。OSS 是 Linux 早期的音频架构&#xff0c;而 ALSA 作为其继任者&#xf…...

双指针算法介绍+算法练习(2025)

一、介绍双指针算法 双指针&#xff08;或称为双索引&#xff09;算法是一种高效的算法技巧&#xff0c;常用于处理数组或链表等线性数据结构。它通过使用两个指针来遍历数据&#xff0c;从而减少时间复杂度&#xff0c;避免使用嵌套循环。双指针算法在解决诸如查找、排序、去重…...

第八节:红黑树(初阶)

【本节要点】 红黑树概念红黑树性质红黑树结点定义红黑树结构红黑树插入操作的分析 一、红黑树的概念与性质 1.1 红黑树的概念 红黑树 &#xff0c;是一种 二叉搜索树 &#xff0c;但 在每个结点上增加一个存储位表示结点的颜色&#xff0c;可以是 Red和 Black 。 通过对 任何…...

【C++标准库类型】深入理解C++中的using声明:从基础到实践

目录 一、using声明基础 1.1 基本语法形式 1.2 典型应用场景 1.3 作用域规则 二、关键注意事项 2.1 命名冲突处理 2.2 头文件使用规范 2.3 与typedef的对比 三、面向对象中的应用 3.1. 解除派生类名称隐藏&#xff08;核心应用&#xff09; 3.2. 构造函数继承&#…...

蓝桥杯2024年第十五届省赛真题-回文数组

题目描述 小蓝在无聊时随机生成了一个长度为 n 的整数数组&#xff0c;数组中的第 i 个数为ai&#xff0c;他觉得随机生成的数组不太美观&#xff0c;想把它变成回文数组&#xff0c;也是就对于任意i ∈ [1, n] 满足 ai an−i1 。小蓝一次操作可以指定相邻的两个数&#xff0c…...

多数元素——面试经典150题(力扣)

题目 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,3] 输出&#xff1a;3 …...

QT中委托QStyledItemDelegate的使用

目录 一、子类化委托 二、委托方法实现 1)createEditor 2)setEditorData 3)setModelData 4)updateEditorGeometry 三、委托使用 四、总结 Qt的数据容器控件采用模型/视图(model/view)架构设计。模型用于存放控件的数据,视图则用于显示编辑数据,而委托则是…...

android 调用wps打开文档并感知保存事件

需求场景 在项目开发中会碰到需要调用WPS打开Word,Excel,Ppt等Office系列文档的情况&#xff0c;网上目前少有正式介绍如何调用相关API打开文档&#xff0c;并实现文档编辑后回传给三方应用&#xff0c;本人在逛WPS社区时发现 解锁WPS二次开发新世界&#xff1a;Android开发用…...

前端 Webpack 面试题

1、什么是 Webpack?它有什么作用? Webpack 是一个前端资源打包工具,用于将 JavaScript、CSS、图片等项目资源进行模块化管理和打包。它能够将复杂的项目结构转化为浏览器友好的代码,提高前端项目的开发效率和性能。 模块打包:Webpack 将项目中的各个模块及依赖打包成一个…...

05延迟任务精准发布文章(redis实现延迟任务、分布式锁)

上架不代表发布(需要发布app端才会显示文章&#xff09; 1)文章定时发布 2)延迟任务概述 2.1)什么是延迟任务 定时任务&#xff1a;有固定周期的&#xff0c;有明确的触发时间 延迟队列&#xff1a;没有固定的开始时间&#xff0c;它常常是由一个事件触发的&#xff0c;而在…...

十六、从零搭建一个 Vue 3 后台管理系统:完整实战教程

Vue 3 作为当下最为流行的前端框架之一&#xff0c;凭借其简洁的 API 以及强大的性能&#xff0c;已然成为构建后台管理系统的首选工具。本文将一步一步地引导你从零开始搭建一个 Vue 3 后台管理系统&#xff0c;内容涵盖路由、权限管理、状态管理等核心功能&#xff0c;并且会…...

never_give_up

一个很有意思的题&#xff1a; never_give_up - Bugku CTF平台 注意到注释里面有1p.html&#xff0c;我们直接在源代码界面看&#xff0c;这样就不会跳转到它那个链接的&#xff1a; 然后解码可得&#xff1a; ";if(!$_GET[id]) {header(Location: hello.php?id1);exi…...

DeepSeek结合Mermaid绘图(流程图、时序图、类图、状态图、甘特图、饼图)转载

思维速览&#xff1a; 本文将详细介绍如何利用DeepSeek结合Mermaid语法绘制各类专业图表&#xff0c;帮助你提高工作效率和文档质量。 ▍DeepSeek入门使用请看&#xff1a;deepseek保姆级入门教程&#xff08;网页端使用 本地客户端部署 使用技巧&#xff09; DeepSeek官网…...

「基于大模型的智能客服系统」语义理解、上下文记忆与反馈机制设计

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

【后端】【django】导出 API 文档的几种方法

在 Django 项目里&#xff0c;导出 API 文档是很常见的需求&#xff0c;一般可以借助第三方库来实现。 使用 drf-yasg 导出 Swagger/OpenAPI 格式文档 drf-yasg 是一个用于 Django REST framework 的工具&#xff0c;能够自动生成 Swagger 和 OpenAPI 格式的 API 文档。 步骤…...

【HarmonyOS Next之旅】DevEco Studio使用指南(二)

目录 1 -> 工程模板介绍 2 -> 创建一个新的工程 2.1 -> 创建和配置新工程 2.1.1 -> 创建HarmonyOS工程 2.2.2 -> 创建OpenHarmony工程 1 -> 工程模板介绍 DevEco Studio支持多种品类的应用/元服务开发&#xff0c;预置丰富的工程模板&#xff0c;可以根…...

鸿蒙Next开发与实战经验总结

文章目录 1. 鸿蒙Next概述与开发环境搭建1.1 鸿蒙Next的核心特性1.2 开发环境搭建与工具链安装步骤工具链 1.3 第一个鸿蒙Next应用代码示例流程图 2. 鸿蒙Next应用架构与设计模式2.1 应用架构解析2.2 常用设计模式2.3 组件化开发实践 3. UI开发与布局系统3.1 基础UI组件3.2 布局…...

uniapp实现 uview1 u-button的水波纹效果

说明&#xff1a; 由于uview2已经移除水波纹效果&#xff0c;这边又觉得那个效果好看&#xff0c;所以开发这个功能(原谅我不会录动图) 效果&#xff1a; 具体代码&#xff1a; <view class"ripple-container" touchstart"handleTouchStart" touchend&…...

Linux练级宝典->任务管理和守护进程

任务管理 进程组概念 每个进程除了进程ID以外&#xff0c;还有一个进程组&#xff0c;进程组就是一个或多个进程的集合 同一个进程组&#xff0c;代表着他们是共同作业的&#xff0c;可以接收同一个终端的各种信号&#xff0c;进程组也有其唯一的进程组号。还有一个组长进程&a…...

金融行业替换传统的FTP传输系统的必要性

在如今这个数字化飞速发展的时代&#xff0c;金融行业对于信息安全性和数据传输效率的要求简直高得离谱。可是呢&#xff0c;你可能想不到&#xff0c;很多金融机构竟然还在用传统的FTP&#xff08;文件传输协议&#xff09;来处理日常的数据交换。 FTP在过去几十年里确实是网络…...

C# backgroundworker类(后台线程)

概念 在C#程序中&#xff0c;经常会有一些耗时较长的CPU密集型运算&#xff0c;如果直接在 UI 线程执行这样的运算就会出现UI不响应的问题。解决这类问题的主要途径是使用多线程&#xff0c;启动一个后台线程&#xff0c;把运算操作放在这个后台线程中完成。但是原生接口的线程…...

OpenAI智能体初探:使用 OpenAI Responses API 在 PDF 中实现检索增强生成(RAG)

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。 知行合一,不写水文,喜欢可关注,分享AI算法干货、技术心得。 欢迎关注《大模型理论和实战》、《DeepSeek技术解析和实战》,一起探索技术的无限可能! 引子 在信息爆炸的时代,从大量 PDF 文档中快速准确地检索信息…...

SqlServer数据库报错紧急或可疑无法访问的修复过程,亲测有效。

当 SQL Server 数据库被标记为 SUSPECT 状态时&#xff0c;表示数据库可能由于事务日志损坏、数据文件丢失或其他严重问题而无法正常启动。以下是一个详细的恢复步骤&#xff0c;基于搜索结果中的信息和常见的最佳实践&#xff1a; 恢复步骤 1. 确认数据库状态 将database-n…...

12.31[net]review

复用&#xff08;Multiplexing&#xff09;的概念 定义&#xff1a;在传输层&#xff0c;复用是指多个应用进程可以使用同一个传输层协议&#xff08;如 TCP 或 UDP&#xff09;来发送数据。从应用层的角度看&#xff0c;不同的应用进程&#xff08;如网页浏览器、邮件客户端等…...

Redis超高并发分key实现

Redis扛并发的能力是非常强的&#xff0c;所以高并发场景下经常会使用Redis&#xff0c;但是Redis单分片的写入瓶颈在2w左右&#xff0c;读瓶颈在10w左右&#xff0c;如果在超高并发下即使是集群部署Redis&#xff0c;单分片的Redis也是有可能扛不住的&#xff0c;如下图所示&a…...

Houdini学习笔记

1. Houdini中一次只能显示一个物体 如果要都显示 需要 merge 节点 粉色的是 以参考显示 2.对任意一个节点按F1 可以弹出houdini官方文档 3. 恢复视角 Space H,居中 Space G 居中选中物体...

Ubuntu 22.04使用pigz多线程快速解压/压缩文件

最近搞项目&#xff0c;资料太大&#xff0c;解压时间太久&#xff0c;于是想办法解决。 开贴记录。 1.安装pigz sudo apt install pigz 2.解压资料 解压命令为 tar --use-compress-programpigz -xvpf ***.tar.gz 将最后的部分***.tar.gz换成你自己的文件即可 例如 ti…...

子数组问题——动态规划

个人主页&#xff1a;敲上瘾-CSDN博客 动态规划 基础dp&#xff1a;基础dp——动态规划-CSDN博客多状态dp&#xff1a;多状态dp——动态规划-CSDN博客 目录 一、解题技巧 二、最大子数组和 三、乘积最大子数组 四、最长湍流子数组 五、单词拆分 一、解题技巧 区分子数组&…...

汉桑科技IPO:潜藏两大风险 公众投资者权益或受损

冰山之所以危险&#xff0c;是因为只有八分之一在水面上。 ——语出小说家海明威。 引 言 野村证券提供的一份报告显示&#xff0c;2025年前两个月&#xff0c;我国出口同比增长仅有2.3%&#xff0c;与去年四季度9.9%的增长显著下滑。与此同时&#xff0c;从2月1日开始&a…...

【3DGS】SuperSplat本地运行+修改监听端口+导入ply模型+修剪模型+在线渲染3DGS网站推荐

SuperSplat官网代码&#xff1a;https://github.com/playcanvas/supersplat 本地安装和运行 Clone the repository: git clone https://github.com/playcanvas/supersplat.git cd supersplat Install dependencies: npm install Build SuperSplat and start a local web ser…...

整数与字节序列相互转换

以下函数是用于二进制编解码的核心工具函数&#xff0c;实现 32/64 位整数与字节流之间的高效转换。 操作逻辑&#xff1a;将整数的每个字节依次写入缓冲区&#xff0c;从最低有效字节到最高有效字节内存布局&#xff1a;假设 value0x12345678&#xff0c;地址由低到高依次是0…...

嵌入式软件测试的东方智慧:WinAMS工具的技术哲学与实践启示——一名汽车电子工程师的七年工具演进观察

引言&#xff1a;在丰田精益生产线上诞生的测试哲学 2017年参与某日系车企的ECU&#xff08;电子控制单元&#xff09;联合开发时&#xff0c;我第一次在名古屋工厂见到产线旁部署的WinAMS测试站。不同于欧美工具强调的“全流程覆盖”&#xff0c;这个诞生于日本制造业精益文化…...

卫星遥感赋能气象服务:精准预测,智享生活

卫星遥感技术作为现代气象服务的“千里眼”和“顺风耳”&#xff0c;正以前所未有的精度和效率&#xff0c;革新着我们对天气的观测、预报与应对方式。今天&#xff0c;就让我们一同探索卫星遥感在气象服务中的奇妙应用。 星图云开放平台&#xff1a;专业气象的智慧之选 高精度…...

多个nodejs版本切换使用教程

想要多个nodejs版本来回切换TOC 先卸载本地已安装的nodejs下载安装nvm ,下载地址&#xff1a;https://github.com/coreybutler/nvm-windows/releases打开链接后 &#xff0c;选择 nvm-setup.exe 安装&#xff0c;安装路径避免空格和中文&#xff08;如 D:\nvm&#xff09; 选择…...

Vue.js 3 的设计思路:从声明式UI到高效渲染机制

目录 一、声明式UI与虚拟DOM的灵活性 二、渲染器&#xff1a;虚拟DOM到真实DOM的桥梁 三、组件的本质与实现 四、编译与运行时的协同优化 五、性能与可维护性的权衡 总结 Vue.js 3 作为新一代前端框架&#xff0c;其设计理念在声明式UI描述、虚拟DOM优化、组件化架构…...

Python控制语句 ——break和continue

1.以下关于Python循环结构的描述中,错误的是() 。 A、break用来结束当前当次语句,但不跳出当前的循环体。 B、遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range函数等。 C、Python通过for,while等保留字构建循环结构。 D、continue只结束本次循环。 答案:A。在…...

Linux websocket服务器、配网方法、QT客户端程序

一、linux websocket服务器 参考下面的代码编译和运行 websocket_for_linux: c语言实验websocket通信&#xff0c;含服务端和客户端示例代码 二、网络配置 Linux本地开启server和client&#xff0c;可正常通信。 换局域网另外一台PC后无法测试通过。 解决办法&#xff1a;…...

Python网络爬虫之requests库的使用方法

requests库是Python中用于发送HTTP请求的一个重要库,在实际应用中,它被广泛用于爬取网页数据、调用API接口等。本节将详细讲解requests库的使用流程,包括发送HTTP请求、携带请求参数、处理服务器响应以及错误处理,帮助读者掌握requests库的基本使用方法。 1. 使用requests库…...

一、初识Docker【安装基础案例】

开始学习docker容器技术&#xff0c;本文介绍如何安装docker、基本概念和一个简单的容器案例。 1. 安装docker 1.1 yum源方式安装 # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils# Step 2: 添加软件源信息 yum-config-manager --add-repo <https://mir…...

stm32 f4 flash 调用时卡死

【HAL库】STM32F407----内部Flash的读写_stm32f407 flash-CSDN博客 参照此博客&#xff0c;如果调用flash 卡死的原因是谢日adress不准确&#xff0c;得到0x08010000 成功运行...

uv pip install -r requirements.txt-报错,python版本过低

升级Python版本&#xff08;推荐&#xff09; browser-use0.1.40 需要 Python ≥3.11&#xff0c;但你的环境是 Python 3.10.12。升级Python版本是最直接的解决方案&#xff1a; 安装Python 3.11&#xff1a; 使用 pyenv&#xff08;Linux/macOS&#xff09;&#xff1a;pyenv…...

c++ 中的float和double 的区别 开发过程中使用哪个更好

在 C 中&#xff0c;float 和 double 都是用于表示浮点数的数据类型&#xff0c;但它们在精度、存储空间和性能方面有所不同。 1. float 和 double 的主要区别 特性floatdouble占用内存4 字节&#xff08;32 位&#xff09;8 字节&#xff08;64 位&#xff09;精度约 6-7 位有…...

工厂模式加策略模式 -- 具体实现

这里写目录标题 定义接口定义抽象类定义主处理器分支处理器定义工厂demo 定义接口 public interface EntityHandler extends InitializingBean {MatchContentDTO match(MatchEntityDTO matchEntityDTO);String supportEntityType(); }定义抽象类 public abstract class Abstr…...

Redis7——进阶篇(五)

前言&#xff1a;此篇文章系本人学习过程中记录下来的笔记&#xff0c;里面难免会有不少欠缺的地方&#xff0c;诚心期待大家多多给予指教。 基础篇&#xff1a; Redis&#xff08;一&#xff09;Redis&#xff08;二&#xff09;Redis&#xff08;三&#xff09;Redis&#x…...

什么是全栈?

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点下班 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 &#x1f4c3;文章前言 &#x1f537;文章均为学习工…...