树的结构(b,b+树)

无论线性表,栈还是队列,都是一对一,查询的时候,效率较低,数据量比较的大的情况

1.树的定义

一种数据结构,有层次关系的集合,根朝上,叶朝下

除了根节点外,每个子节点都有多个不想交的子树

父节点

子节点

兄弟节点

树根节点(根节点)

叶子节点

子树

空树

度:最大子树数,多少分支

层次(深度):第一层,第二次,以此类推,最大层数是4

森林:树多了

2.二叉树

树中包含的各个节点不能超过2,度不能超过2

二叉树衍生出满二叉树和完全二叉树,二叉树分为顺序存储的二叉树,基于链表存储的二叉树。

二叉排序树,平衡二叉树,赫夫曼树,红黑树,都是属于二叉树。

2.1二叉排序树,搜索树

比它小放它左边,比它大放右边。

查找复杂度较低,o(logn)

插入的数据总是比已有的数据大,子树会向一边切斜,树的层次变深,形成链表结构,出现了平衡二叉树。

2.2平衡二叉树

子树的高度不大于1,查询速度快,插入和删除慢,要进行旋转和平衡度计算。为了解决删除插入比较耗时,出现了红黑树

2.3红黑树

在平衡二叉树上增加了红色或黑色,增加了颜色属性

根节点和叶子节点是黑色,内部节点是红色和黑色较低,叶子节点必须是黑色,根节点只能是黑色。

从根节点走到空节点,所经过的黑节点的数目是相同的。

左旋和右旋,翻转颜色

AVL树和rb树的区别

3.多叉树

大规模数据存储,二叉树树的深度过深,导致查询效率低下,磁盘io读写过于频繁,导致查询效率低下,多叉树能够解决这个问题

b树,b+树

3.1 b-tree

b树适用于读写相对大的数据块的存储系统

每个节点可以存储超过2个元素,可以超过2的字节点

拥有AVL平衡树的特点

拥有二叉搜索树的特点

B树比较矮,分叉越多,树越矮,io次数较少,搜索性能较高。

三阶B树最多有3个分叉,四阶B树最多拥有4个分叉

一个节点最好凑够一个数据块的大小,凑够一个数据块的大小,直接写入磁盘。

一般4096b一个节点,因为一个磁道就4096b,但是不一定,根据你磁盘来弄。

3.2 b+tree

分为非叶子节点,叶子结点

内部节点只存储key,不存储值

叶子节点存储key和value具体数据,、

所有的叶子节点形成一个有序链表,排序和查询范围支持好。

b树的节点存储的元素个数是m,那么它的字节点数是m+1

b+比b树的优势,也是为什么mysql要选择b+树

b+存储更多的key,树的高度更低,时间复杂度越小,查询块

数据在叶子节点,每次都要到叶子节点,查询稳定,都是去第三层。

叶子节点构成链表结构,方便查询和排序

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

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

相关文章

【25届秋招备战C++】算法篇-排序算法合集

【25届秋招备战C】算法篇-排序算法合集 一、简介二、解题思路三、模板四、参考 一、简介 排序算法是计算机科学中的基本算法之一,用于将一组数据按照特定的顺序(升序或降序)进行排列。排序算法广泛应用于数据管理和检索系统,提高…

论文翻译:Large Language Models for Education: A Survey and Outlook

https://arxiv.org/abs/2403.18105 目录 教育领域的大型语言模型:一项调查和展望摘要1. 引言2. 教育应用中的LLM2.1 概述2.2 学习辅助2.2.1 问题解决(QS) 2.2.2 错误纠正(EC)2.2.3 困惑助手(CH)…

第一节变量、运算符、表达式、输入与输出

Hello World package org.wyp;public class Main {//定义了一个类Mainpublic static void main(String[] args) {System.out.println("Hello World");} }变量 byte(字节) 01010111 一个有8位二进制数 每一个0/1叫一位,简称为bit 1byte8bit 一个byte就是一个字节,一…

解决elementUI列表的疑难杂症,排序显示错乱的问题

大家好,在使用elementUI表格时,有时会出现一些意料之外的问题,比如数据排序正常但表格显示、排序错乱等。在网上搜索后一般有2种解决方法:1.给表格每一项的el-table-column添加唯一的id用于区分。2.给表格每一项的el-table-column…

昇思训练营打卡第二十四天(LSTM+CRF序列标注)

LSTM(Long Short-Term Memory,长短时记忆网络)是一种特殊的循环神经网络(RNN),由Hochreiter和Schmidhuber在1997年提出。它旨在解决传统RNN在处理长距离依赖问题时出现的梯度消失和梯度爆炸问题。以下是LST…

羧基聚乙二醇生物素的制备方法;COOH-PEG-Biotin

羧基聚乙二醇生物素(COOH-PEG-Biotin)是一种常见的生物分子聚合物,具有多种应用,特别是在生物实验、药物研发和生物技术等领域。以下是对该化合物的详细解析: 一、基本信息 名称:羧基聚乙二醇生物素&#x…

数据结构:链表详解 (c++实现)

前言 对于数据结构的线性表,其元素在逻辑结构上都是序列关系,即数据元素之间有前驱和后继关系。 但在物理结构上有两种存储方式: 顺序存储结构: 使用此结构的线性表也叫 顺序表物理存储上是连续的,因此可以随机访问…

电压反馈型运算放大器的增益和带宽

简介 本教程旨在考察标定运算放大器的增益和带宽的常用方法。需要指出的是,本讨论适用于电压反馈(VFB)型运算放大器。 开环增益 与理想的运算放大器不同,实际的运算放大器增益是有限的。开环直流增益(通常表示为AVOL)指放大器在反馈环路未闭合时的增益…

nginx代理gitee

背景 若干台agv设备,这些设备都是没有公网的(无法访问百度等)。 一台服务器(ubuntu20.04)有线可以公网,无线可以实现内部通信(agv,plc等设备)。 目的 agv每一次更新代码,拉取代码等都需要切换到有公网的网络,多台agv设…

守望数据边界:sklearn中的离群点检测技术

守望数据边界:sklearn中的离群点检测技术 在数据分析和机器学习项目中,离群点检测是一项关键任务。离群点,又称异常值或离群点,是指那些与其他数据显著不同的观测值。这些点可能由测量误差、数据录入错误或真实的变异性造成。正确…

借人工智能之手,编织美妙歌词篇章

在音乐的领域中,歌词宛如璀璨的明珠,为旋律增添了无尽的魅力和情感深度。然而,对于许多创作者来说,编织出美妙动人的歌词并非易事。但如今,随着科技的飞速发展,人工智能为我们带来了全新的创作可能。 “妙…

Cornerstone3D导致浏览器崩溃的踩坑记录

WebGL: CONTEXT_LOST_WEBGL: loseContext: context lost ⛳️ 问题描述 在使用vue3vite重构Cornerstone相关项目后,在Mac本地运行良好,但是部署测试环境后,在window系统的Chrome浏览器中切换页面会导致页面崩溃。查看Chrome的任务管理器&am…

高级前端工程师面试题

HTML/CSS 1. 解释HTML5中的<canvas>元素及其用途。 <canvas>元素用于通过JavaScript绘制图形&#xff0c;比如图表、图像处理等。它提供了一个图形上下文&#xff0c;可以进行2D图形绘制。 2. CSS中display: none和visibility: hidden有什么区别&#xff1f; d…

MySQL 面试真题(带答案)

MySQL 场景面试题 目录 场景1&#xff1a;用户注册和登录系统 1.1 数据库设计1.2 用户注册1.3 用户登录 场景2&#xff1a;订单管理系统 2.1 数据库设计2.2 创建订单2.3 查询订单 场景3&#xff1a;博客系统 3.1 数据库设计3.2 发布文章3.3 评论功能 场景1&#xff1a;用户…

浅析Kafka Streams消息流式处理流程及原理

以下结合案例&#xff1a;统计消息中单词出现次数&#xff0c;来测试并说明kafka消息流式处理的执行流程 Maven依赖 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusio…

【三维AIGC】扩散模型LDM辅助3D Gaussian重建三维场景

标题&#xff1a;《Sampling 3D Gaussian Scenes in Seconds with Latent Diffusion Models》 来源&#xff1a;Glasgow大学&#xff1b;爱丁堡大学 连接&#xff1a;https://arxiv.org/abs/2406.13099 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何…

WebSocket 常见的错误

一、连接相关错误 &#xff08;一&#xff09;连接超时 原因&#xff1a;在规定的时间内无法成功建立与服务器的 WebSocket 连接。示例&#xff1a;如果网络状况不佳&#xff0c;或者服务器响应缓慢&#xff0c;导致在客户端设置的连接超时时间内未能完成连接建立的握手过程&am…

在 WebSocket 连接建立之前进行身份验证时,token 应该如何存储

在 WebSocket 连接建立之前进行身份验证时,token 的存储方式有以下几种常见选择: 一、客户端存储 (一)本地存储(LocalStorage) 在现代浏览器中,可以使用 LocalStorage 来存储 token。LocalStorage 是一种键值对形式的存储,数据会一直存储在浏览器中,直到被手动清除或…

Spring Security学习笔记(一)Spring Security架构原理

前言&#xff1a;本系列博客基于Spring Boot 2.6.x依赖的Spring Security5.6.x版本 Spring Security中文文档&#xff1a;https://springdoc.cn/spring-security/index.html 一、什么是Spring Security Spring Security是一个安全控制相关的java框架&#xff0c;它提供了一套全…

海外ASO:iOS与谷歌优化的相同点和区别

海外ASO是针对iOS的App Store和谷歌的Google Play这两个主要海外应用商店进行的优化过程&#xff0c;两个不同的平台需要采取不同的优化策略&#xff0c;以下是对iOS优化和谷歌优化的详细解析&#xff1a; 一、iOS优化&#xff08;App Store&#xff09; 1、关键词覆盖 选择关…