234树

2-3-4树是一种特殊的多分叉树 3个数据项 4个子节点

含义
2-3-4树中的2、3、4的含义指的是一个节点可能含有的子节点数。对非叶节点有三种可能的情况:
· 有一个数据项的节点总是有两个子节点
· 有两个数据项的节点总是有三个子节点
· 有三个数据项的节点总是有四个子节点

数据特性:

数据项1 数据项2 数据项3

节点1 节点2 节点3 节点4

   · 根是 节点1的子树的所有子节点的关键字值小于数据项1; 
   · 根是 节点2 的子树的所有子节点的关键字值大于数据项1并且小于数据项2; 
   · 根是 节点3 的子树的所有子节点的关键字值大于数据项2并且小于数据项3; 
   · 根是 节点4 的子树的所有子节点的关键字值大于数据项3。

操作:

查询:类似二叉查找树 二分法查找

插入:

Tips:
插入的值落到最底层作为叶子节点,在查找插入的位置的时候如果遇到节点数据项满了的情况,需要进行节点分裂
插入的过程中如果遇到满节点就要进行节点分裂

个人小结:
先分裂 类似23查找树的分裂,中间元素冒泡上浮到父节点 左右元素断裂成两个节点
然后插入的元素继续向下进行寻找适合插入的地方
父节点多了一个数据项,相应的子节点的个数也加了1

参考文献
https://blog.csdn.net/heyanxi0101/article/details/79751514

跟红黑树一样也是一个平衡树 效率比红黑树稍微差 编程容易点

234树跟23查找树之间还是有区别的,不能当做一类处理,一般只是拿来跟红黑树做对比,性能类似,234树遇到满节点分裂的时候不是先插入,然后再分裂,而是不插入,先进行分裂,分裂完成之后继续往下查找合适的位置插入,23查找树是先插入,然后分裂.

猜你喜欢

转载自blog.csdn.net/qq_30228707/article/details/90066525
234