红黑树和b+_b树和二叉树区别

红黑树和b+_b树和二叉树区别B树、B+树、红黑树1、B树B树属于多叉树又名平衡多路查找树(查找路径不只两个)规则:(1)排序方式:所有节点关键字是按递增次序排列,并遵循左小右大原则;(2)子节点数:非叶节点的子节点数>1,且<=M ,且M>=2,空树除外(注:M阶代表一个树节点最多有多少个查找路径,M=M

B树、B+树、红黑树   1、B树   B树属于多叉树又名平衡多路查找树(查找路径不只两个)   规则:   (1)排序方式:所有节点关键字是按递增次序排列,并遵循左小右大原则;   (2)子节点数:非叶节点的子节点数>1,且<=M ,且M>=2,空树除外(注:M阶代表一个树节点最多有多少个查找路径,M=M路,当M=2则是2叉树,M=3则是3叉);   (3)关键字数:枝节点的关键字数量大于等于ceil(m/2)-1个且小于等于M-1个(注:ceil()是个朝正无穷方向取整的函数 如ceil(1.1)结果为2);   (4)所有叶子节点均在同一层、叶子节点除了包含了关键字和关键字记录的指针外也有指向其子节点的指针只不过其指针地址都为null对应下图最后一层节点的空格子;   最后我们用一个图和一个实际的例子来理解B树(这里为了理解方便我就直接用实际字母的大小来排列C>B>A)
红黑树和b+_b树和二叉树区别
红黑树和b+_b树和二叉树区别   【文章福利】需要C/C++ Linux服务器架构师学习资料加群(资料包括C/C++,Linux,golang技术,内核,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg,大厂面试题 等)   B树的查询流程:   如上图我要从上图中找到E字母,查找流程如下   (1)根节点的关键字进行比较,当前根节点关键字为M,E<M(26个字母顺序),所以往找到指向左边的子节点(二分法规则,左小右大,左边放小于当前节点值的子节点、右边放大于当前节点值的子节点);   (2)拿到关键字D和G,D<E<G 所以直接找到D和G中间的节点;   (3)拿到E和F,因为E=E 所以直接返回关键字和指针信息(如果树结构里面没有包含所要查找的节点则返回null);   B树的说明:   B树的阶:节点的最多子节点个数。比如2-3树的阶是3,2-3-4树的阶是4   B-树的搜索,从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果命中则结束,否则进入查询关键字所属范围的儿子结点;重复,直到所对应的儿子指针为空,或已经是叶子结点   关键字集合分布在整颗树中, 即叶子节点和非叶子节点都存放数据.   搜索有可能在非叶子结点结束   其搜索性能等价于在关键字全集内做一次二分查找
红黑树和b+_b树和二叉树区别
红黑树和b+_b树和二叉树区别   2、B+树   B+树是B树的变体,也是一种多路搜索树。
红黑树和b+_b树和二叉树区别
红黑树和b+_b树和二叉树区别   B+树的说明:   B+树的搜索与B树也基本相同,区别是B+树只有达到叶子结点才命中(B树可以在非叶子结点命中),其性能也等价于在关键字全集做一次二分查找   所有关键字都出现在叶子结点的链表中(即数据只能在叶子节点【也叫稠密索引】),且链表中的关键字(数据)恰好是有序的。不可能在非叶子结点命中   非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层,更适合文件索引系统   3、B树和B+树的区别   B+树:   B+树的非叶子节点不保存关键字记录的指针,只进行数据索引,这样使得B+树每个非叶子节点所能保存的关键字大大增加;   B+树叶子节点保存了父节点的所有关键字记录的指针,所有数据地址必须要到叶子节点才能到。所以每次数据查询的次数都一样;   B+树叶子节点的关键字从小到大有序排列,左边结尾数据都会保存右边节点开始数据的指针。   B树:   关键字集合分布在整颗树中, 即叶子节点和非叶子节点都存放数据。   搜索有可能在非叶子结点结束   优缺点:   B+树的层级更少:相较于B树B+每个非叶子节点存储的关键字数更多,树的层级更少所以查询数据更快;   B+树查询速度更稳定:B+所有关键字数据地址都存在叶子节点上,所以每次查找的次数都相同所以查询速度要比B树更稳定;   B+树天然具备排序功能:B+树所有的叶子节点数据构成了一个有序链表,在查询大小区间的数据时候更方便,数据紧密性很高,缓存的命中率也会比B树高。   B+树全节点遍历更快:B+树遍历整棵树只需要遍历所有的叶子节点即可,,而不需要像B树一样需要对每一层进行遍历,这有利于数据库做全表扫描。   B树相对于B+树的优点是,如果经常访问的数据离根节点很近,而B树的非叶子节点本身存有关键字其数据的地址,所以这种数据检索的时候会要比B+树快。   3、 R-B Tree(红黑树)   R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。   红黑树的特性:   每个节点或者是黑色,或者是红色。   根节点是黑色。   每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]   如果一个节点是红色的,则它的子节点必须是黑色的。   从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。   注意:   特性(3)中的叶子节点,是只为空(NIL或null)的节点。   特性(5),确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接衡的二叉树。
红黑树和b+_b树和二叉树区别
红黑树和b+_b树和二叉树区别   原文链接:https://blog.csdn.net/prefect

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/34872.html

(0)
上一篇 2024年 9月 10日 上午10:08
下一篇 2024年 9月 10日 上午10:12

相关推荐

  • mxplayer中文激活成功教程版_mxplayer中文激活成功教程版无广告

    mxplayer中文激活成功教程版_mxplayer中文激活成功教程版无广告mxplayer 激活成功教程版本2024(MX播放器)v1.84.4介绍:《mxplayer激活成功教程版本2024》是一款移动平台上十分强悍的高清媒体播放器,支持在线字幕匹配十分受欢迎,该软件直装即为专业版,享受无广告服务,超强大的解码性能和兼容性,必备高清播放器。激活成功教程内容:直

    2024年 6月 17日
  • btree索引和位图索引_联合索引最左原则原理

    btree索引和位图索引_联合索引最左原则原理C++基础语法梳理:数据库丨BTree索引​摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱

    2024年 8月 5日
  • tlsf1005d交换机设置_交换机有ip地址吗

    tlsf1005d交换机设置_交换机有ip地址吗TL*以上介绍所引用数据和产品表现为产品在特定设备特定实验环境下的表现,基于现场实际环境或设备的不同可能会有所差异,提及的技术对比均为科学原理解释,不涉及其他目的。 以上内容中所提及到的第三方产品信息例如旗舰机型、运营商带宽等,均为截止至产品正式发布

    激活谷笔记 2024年 8月 2日
  • 单片机c语言必背代码_单片机c语言必背代码

    单片机c语言必背代码_单片机c语言必背代码六星云课堂:单片机C语言和普通的C语言有什么区别?很多想入门单片机的同学都会先学习C语言再入门单片机,但是学着学着发现明明同样都是C语言,为什么单片机C语言和我当初学的C语言有差异呢?单片机c语言相对于普通C语言增加了一些基本的指令,还有变量的赋值是16进制,当然

    2024年 8月 9日
  • 数组指针赋值问题有哪些

    数组指针赋值问题有哪些C提供了指针的一些基本操作,先来看赋值。一、赋值指针赋值可以有以下几种形式1.使用数组名2.使用带地址运算符(&)的变量3.另一个指针通过一个代码示例来演示#include<stdio.h>int main(void){int arr[5] = {100,200,300,400,5

    激活谷笔记 2024年 5月 18日
  • c语言指针删除字符_指针指向字符串

    c语言指针删除字符_指针指向字符串深度学习算法工程师面经(微软、阿里、商汤、旷视、滴滴、华为、海康、平安、陌陌、第四范式等offer)之上篇更新:面经上篇最新整理,先发完几篇重复的,后续知乎同步更新【面经1】算法工程师实习校招面经 (上篇)2020届

    激活谷笔记 2024年 9月 2日
  • stm32单片机串口输出函数_stm32软件

    stm32单片机串口输出函数_stm32软件stm32之串口什么是串口?一个物理接口形式(硬件)一种通信方式。工作实现首先硬件连接电脑与STM32芯片,编写串口程序,下载,然后使用串口。可以同时使用多个串口。串口通信需要定义的参数起始位

    2024年 8月 27日
  • hello是什么意思中文翻译_HELLO是什么牌子

    hello是什么意思中文翻译_HELLO是什么牌子hello和hi的区别hello和hi的区别为意思不同,用法不同以及使用场合不同。hello的意思是你好,hi的意思只是打招呼。hello是比较礼貌的,可以对任何人和任何情况下使用,而hi比较随意非正式场合用。hello和hi的区别 一、意思不同 1、hello意思:(用于问候、接电

    2024年 8月 7日
  • DataSpell激活2023.3.2(IDE开发环境工具 DataSpell2023中文激活成功教程版教程 v2023.3 Mac版)

    DataSpell激活2023.3.2(IDE开发环境工具 DataSpell2023中文激活成功教程版教程 v2023.3 Mac版)

    激活谷笔记 2024年 7月 14日
  • 二叉排序树中进行查找的效率与什么有关_二叉排序树查找比较次数

    二叉排序树中进行查找的效率与什么有关_二叉排序树查找比较次数数据结构与算法之 —— 二叉树和二叉搜索树二叉树01. 什么是二叉树定义:每个节点都最多只能有两个子节点的树结构特点: 通常子树被称作“左子树”(left subtree)和“右子树”(right sub

    2024年 8月 2日
  • Navicat Premium 16.3.9激活(【实用软件】Navicat Premium 16安装教程)

    Navicat Premium 16.3.9激活(【实用软件】Navicat Premium 16安装教程)

    2024年 8月 22日
  • ibus安装后无法输出中文_输入法哪个好用

    ibus安装后无法输出中文_输入法哪个好用centos不能输入中文怎么办centos不能输入中文的解决办法:1、通过“yum install im-chooser”安装“im-chooser”;2、设置ibus输入法为默认输入系统;3、注销一次用户并重新登录即可。本文操作环境:CentOS 7系统、DELL G3电脑centos不能输

    2024年 8月 2日
关注微信