树形结构定义介绍

简介: B树B-树就是B树,中间是横线不是减号。B树是一种多路平衡查找树。B-树(Balance Tree),一个m阶的B树具有如下几个特征: 1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2

B树

B-树就是B树,中间是横线不是减号。B树是一种多路平衡查找树。

B-树(Balance Tree),一个m阶的B树具有如下几个特征: 

1.根结点至少有两个子女。

2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m

3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m

4.所有的叶子结点都位于同一层。

5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。 

 

B+ 树

一个m阶的B+树具有如下几个特征:

1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。(中间节点可以存更多元素)

2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

在数据库的聚集索引(Clustered Index)中,叶子节点直接包含卫星数据。在非聚集索引(NonClustered Index)中,叶子节点带有指向卫星数据的指针。

B+树相比B树的优势有三个:

  1. IO次数更少,中间节点不存数据可容纳更多元素 
  2. 查询性能稳定,都需要定位到叶子节点
  3. 范围查询简便,叶子节点之间是有序链表

 

二叉查找树(BST)

  1. 左子树上所有结点的值均小于或等于它的根结点的值。
  2. 右子树上所有结点的值均大于或等于它的根结点的值。
  3. 左、右子树也分别为二叉排序树。

 

红黑二叉树

红黑树是一种近似平衡的二叉查找树,它能够确保任何一个节点的左右子树的高度差不会超过二者中较低那个的一倍。

具体来说,红黑树是满足如下条件的二叉查找树(binary search tree):

  1. 每个节点要么是红色,要么是黑色。
  2. 根节点必须是黑色
  3. 红色节点不能连续(也即是,红色节点的孩子和父亲都不能是红色)。
  4. 对于每个节点,从该点至null(树尾端)的任何路径,都含有相同个数的黑色节点。

在树的结构发生改变时(插入或者删除操作),往往会破坏上述条件3或条件4,需要通过调整使得查找树重新满足红黑树的条件。

调整可以分为两类:一类是颜色调整,即改变某个节点的颜色;另一类是结构调整,集改变检索树的结构关系。结构调整过程包含两个基本操作:左旋(Rotate Left),右旋(RotateRight)。

 

目录
相关文章
|
数据采集 JavaScript 前端开发
爬虫与反爬虫
本文介绍了爬虫与反爬虫的基本概念。爬虫是自动抓取互联网信息的程序,通常使用HTTP请求和解析技术获取数据。反爬虫技术包括验证码、User-Agent检测、IP限制、动态加载和数据接口限制等,用于阻止或限制爬虫访问。开发者需了解这些反爬虫策略,并采取相应措施应对。同时,网站运营者在实施反爬虫时也应考虑用户体验。
|
5月前
|
存储 算法 Java
校招 java 面试基础题目及解析
本文围绕Java校招面试基础题目展开,涵盖平台无关性、面向对象特性(封装、继承、多态)、数据类型、关键字(static、final)、方法相关(重载与覆盖)、流程控制语句、数组与集合、异常处理等核心知识点。通过概念阐述和代码示例,帮助求职者深入理解并掌握Java基础知识,为校招面试做好充分准备。文末还提供了专项练习建议及资源链接,助力提升实战能力。
153 0
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
NeurIPS Spotlight:从分类到生成:无训练的可控扩散生成
无训练的可控扩散生成是一种新颖的生成模型方法,无需额外训练即可利用已有无条件扩散模型和目标属性预测器生成具有特定属性的样本。相比传统模型,它减少了计算成本,提升了可控性和灵活性,适用于图像、文本等领域。然而,该方法也面临预测器质量、算法鲁棒性和数据多样性等挑战。此研究在NeurIPS会议上获Spotlight关注,论文链接:https://arxiv.org/abs/2409.15761。
173 15
|
存储 自然语言处理 机器人
实战揭秘:当RAG遇上企业客服系统——从案例出发剖析Retrieval-Augmented Generation技术的真实表现与应用局限,带你深入了解背后的技术细节与解决方案
【10月更文挑战第3天】随着自然语言处理技术的进步,结合检索与生成能力的RAG技术被广泛应用于多个领域,通过访问外部知识源提升生成内容的准确性和上下文一致性。本文通过具体案例探讨RAG技术的优势与局限,并提供实用建议。例如,一家初创公司利用LangChain框架搭建基于RAG的聊天机器人,以自动化FAQ系统减轻客服团队工作负担。尽管该系统在处理简单问题时表现出色,但在面对复杂或多步骤问题时存在局限。此外,RAG系统的性能高度依赖于训练数据的质量和范围。因此,企业在采用RAG技术时需综合评估需求和技术局限性,合理规划技术栈,并辅以必要的人工干预和监督机制。
943 3
|
存储 SQL 关系型数据库
MySQL语句详解:从基础到进阶的全面指南
MySQL语句详解:从基础到进阶的全面指南
|
前端开发 UED 计算机视觉
前端调取摄像头并实现拍照功能
前端调取摄像头并实现拍照功能
1657 0
|
人工智能 自然语言处理 语音技术
简介阿里云大模型的基本概况和产品矩阵
阿里云在大模型领域深入研究,推出了通义千问、通义万相、通义听悟等产品,涵盖自然语言处理、图像生成、语音识别等多个方面,同时提供行业专属模型和MaaS平台,致力于为企业和个人用户提供高效、智能的服务。
2023 0
|
机器学习/深度学习 敏捷开发 人工智能
探索软件测试中的AI辅助技术
【6月更文挑战第12天】在软件开发生命周期中,测试环节是确保产品质量的关键环节。随着人工智能技术的飞速发展,AI辅助的软件测试方法正在改变传统的测试流程。本文将探讨AI如何优化测试过程,提高缺陷检测的准确性和效率,并预测未来AI在软件测试领域的应用趋势。
369 1
|
存储 关系型数据库 数据库
在 Postgres 中使用 Insert Into Select
【8月更文挑战第11天】
955 0
在 Postgres 中使用 Insert Into Select
|
负载均衡 Java 开发者
Spring Cloud实战:构建分布式系统解决方案
Spring Cloud实战:构建分布式系统解决方案