美文网首页
算法学习----2-3-4树原理演示

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

作者: 爱编程的凯哥 | 来源:发表于2019-02-24 05:13 被阅读15次

目标

理解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

完工!

相关文章

网友评论

      本文标题:算法学习----2-3-4树原理演示

      本文链接:https://www.haomeiwen.com/subject/hbixyqtx.html