2-3树

定义: 2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树,其节点可拥有3个孩子。不过,2-3树与满二叉树相似。若某棵2-3树不包含3-节点,则看上去像满二叉树,其所有内部节点都可有两个孩子,所有的叶子都在同一级别。另一方面,2-3树的一个内部节点确实有3个孩子,故比相同高度的满二叉树的节点更多。高为h的2-3树包含的节点数大于等于高度为h的满二叉树的节点数,即至少有2^h-1个节点。换一个角度分析,包含n的节点的2-3树的高度不大于log2(n+1)

  1. 即有二节点又有三节点的平衡二叉树。是一种绝对平衡的树,对学习红黑树有很大的帮助,2-3和红黑树是等价的。
  2. 如何维持绝对平衡
    先插入42

    再插入37,**2-3树将永远不会添加到一个空的位置。**因为42的左子树为空,所以不能添加,将会添加到他的父亲节点上,也就是42,于是和42融合。

再插入12,因为2-3树将永远不会添加到一个空的位置,所以暂时先和父亲节点融合。

也就是这个样子

再添加一个节点18 ,因为18小于37,所以要添加到左子树中,比12大,所以要添加到12的右子树中,但是12的右子树是空的,根据定义,2-3树将永远不会添加到一个空的位置,而是要和最后要找的节点进行融合,所以进行融合。如下如:

再添加一个节点6,根据以上定义,添加后的图示如下:


他不是一个绝对平衡的树,然后他将进行拆解。如果叶子节点本身就是3节点,再加上父亲节点是4节点,将会进行融合

12将会和37进行融合

如果再插入11

再插入5

因为最多只能有3个叉,所以以上还会进行分裂,如下


总结


下一篇文章将会写到红黑树。

全网最详细的2-3树图解相关推荐

  1. 全网最详细的负载均衡原理图解

    负载均衡由来 在业务初期,我们一般会先使用单台服务器对外提供服务.随着业务流量越来越大,单台服务器无论如何优化,无论采用多好的硬件,总会有性能天花板,当单服务器的性能无法满足业务需求时,就需要把多台服 ...

  2. 超级详细树讲解三 —— B树、B+树图解+代码

    首先很高兴你看到了这篇文章,这篇文章可能会花费你很长很长的时间去看,但是这篇文章包括的内容绝对足够你对树的一个系统性的学习.为什么要写这篇文字呢?因为自己在学习树的时候,有些博客只有图解,有些博客只有 ...

  3. 赢在微点答案专区英语_高考英语怎么拿140+?全网最详细分阶段学习方法!

    作者介绍: 小胖学长,毕业于某省重点高中,在校期间英语单科多次排名年级前列.全国一卷高考英语145,现就读于西南政法大学. "在高中阶段所有学科中,英语是提分性价比最高的科目.只要你有付出, ...

  4. “是男人就下一百层”h5游戏全网最详细教学、全代码,js操作

    "是男人就下一百层"h5游戏全网最详细教学.全代码,js操作 博主的话 游戏展示 编程工具介绍 游戏代码 代码讲解 js 第一步 切换div的显示与隐藏 js 第二步 在菜单页面用 ...

  5. 全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解)

    全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解) 参考文章: (1)全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案 ...

  6. 全网最详细的大数据集群环境下如何正确安装并配置多个不同版本的Cloudera Hue(图文详解)...

    不多说,直接上干货! 为什么要写这么一篇博文呢? 是因为啊,对于Hue不同版本之间,其实,差异还是相对来说有点大的,具体,大家在使用的时候亲身体会就知道了,比如一些提示和界面. 全网最详细的大数据集群 ...

  7. 全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问题的解决办法(图文详解)

    全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问题的解决办法(图文详解) 参考文章: (1)全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问 ...

  8. 全网最详细的深度学习pytorch-gpu环境配置

    学习深度学习第一步就是环境的配置,相信很多小伙伴已经被什么anaconda,tensorflow,Pytorch,cuda这些东西搞得晕头转向,今天带大家详细配置深度学习的环境,这一篇准要教书Pyto ...

  9. 全网超详细的VMware虚拟机安装Kali Linux系统以及首次启动Kali Linux系统的注意事项

    文章目录 1. 简述Kali Linux 2. 下载Kali Linux的镜像文件 3. 安装Kali Linux 4. 首次启动Kali Linux 5. 其他方法安装Kali Linux 1. 简 ...

  10. 详细安装系统镜像Contos图解和常用命令

    一,详细安装系统镜像Contos图解和常用命令 1,系统镜像:安装的是centos7 2,在VM上安装centos7,文件->新建虚拟机 3,选择典型安装,下一步 4,选择centos的映像文件 ...

最新文章

  1. iMeta | 中科院生态中心邓晔组发布微生物组网络分析平台iNAP(图文/视频教程)
  2. 【Netty】IO 模型简介 ( Netty 特点 | Netty 应用场景 | Java 三种 IO 模型 | BIO 模型 )
  3. 生成路径 vs 设置_Simulink代码生成之模型配置
  4. 安装python37路径报错_Robot framework安装python3.7导入HttpLibrary.HTTP报错
  5. 2021年3月15日_读书|总结笔记目录
  6. 爬虫学习二: bs4 xpath re
  7. (04)VHDL实现打两拍
  8. sql STUFF 分组
  9. 网易云音乐html代码_网易云音乐歌单列表导出方法!
  10. NFS网络文件系统配置
  11. Atitit 路由器下面的网络o多个路由器配置 因为存在多个dhcp 所以,不能网有时.. 更改主要的路由路由器 88.88 这样不能ip冲突..and 外部的的dhcp 范围... 在的
  12. 计算机放样在钢结构应用,钢结构放样是什么,怎么操作?
  13. Windows安装Geopandas教程
  14. 解决Maven项目pom文件中出现的错误:Missing artifact oracle:ojdbc7:jar:12.1.0.2.0:compile
  15. 数字滤波器设计工具_数字设计师和代理商的资源和工具
  16. 动态苹果屏保壁纸软件Brooklyn Mac免费版
  17. Rpg maker mv角色扮演游戏制作大师简介
  18. 大数据之大数据技术架构
  19. 巧用 Dummy 解决断网情况下的网络访问问题
  20. 计算机毕设存档袋子,关于做好2018届毕业论文(设计)材料整理存档的通知

热门文章

  1. 获取bing背景图片
  2. 笔记本只能指纹打开,密码忘记的解决办法
  3. 优秀的数据分析师有哪些特质(一)?
  4. Web服务器的配置与管理(4) 配置访问权限和安全
  5. 天气通android2.1,今日天气通APP
  6. python编辑邮件格式_python之发送邮件----文本格式
  7. Centos8.3 nfs-ganesha使用vfs共享目录
  8. 关于ASP.NET直接从一个项目复制WEB窗体后无法点出控件名称(ID)
  9. c++学习从小白到高级工程师实战02:opencv的活学活用
  10. java中render方法_render 系列方法