算法学习----2-3-4树原理演示

目标

理解2-3-4树概念,并用图展示插入流程

概念和规则

2-3-4树和红黑树一样,也是平衡树。只不过不是二叉树,它的子节点数目可以达到4个,有如下规则:

  • 若父节点中存有1个数据项,则必有2个子节点。
  • 若父节点中存有2个数据项,则必有3个子节点。
  • 若父节点中存有3个数据项,则必有4个子节点。
  • 新的数据项总是插入在叶结点中,在树的最底层
  • 在插入新数据时,从根节点找寻位置的过程中遇到任何一个满节点,都要先进行分裂
  • 分裂规则:
    1. 如果待分裂为根节点,则第一个和第三个数据变成两个字节点,当前根节点只留中间的数据

    2. 待分裂不是根节点,则当前节点中间数据上升到父节点,第一盒第三数据分裂成两个节点

效果演示

演示插入数据62、31、5、88、99、21、18、4、100、111、112

  1. 插入62、31、5没有任何冲突满值,直接插入顶层


    image.png
  1. 插入88,遇到第一个满节点,先进行分裂,留下31,5、62分到两个子节点,此时再插入88


    image.png
  2. 插入99,直接插入


    image.png
  3. 插入21、18,都没有遇到满节点,直接插入


    image.png
  4. 插入4,左节点已满,进行分裂:18上升到父节点,当前节点分成两个节点


    image.png
  1. 插入100,右节点已满,进行分裂,逻辑如上,结果如下:


    image.png
  2. 插入111,根节点以满,先进行分裂,再插入


    image.png
  1. 同理插入最后一个112


    image.png

完工!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 说起红黑树就头痛,在大学时就没搞懂,看的晕晕乎乎,理解不了。直到前几天在极客时间的《数据结构与算法之美》专栏中的《...
    微微笑的蜗牛阅读 10,824评论 8 62
  • 本篇主要写的是结合之前分析的2-3-4树和红黑树之间的联系分析红黑树的插入删除操作的原理。我刚刚开始学红黑树时在网...
    Nier_if阅读 5,232评论 1 6
  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 14,602评论 0 25
  • 首先在分析红黑树删除操作之前先说明一下搜索二叉树中删除一个节点时的一个技巧。当删除节点位与树的内节点时,这个时候可...
    Nier_if阅读 7,840评论 2 10
  • 对于诗人来说,时间和空间并不需要那么精准化。刚刚还阳光明媚,转眼深夜来临;刚刚分手,转眼又再次分手。有时候...
    小尘199211阅读 1,369评论 0 1

友情链接更多精彩内容