- 向一个父结点为2结点的3结点中插入新键:此时先将组成个临时4节点,然后将中间数提到上面跟父节点融合为一个3节点,这样树的高度没变。
- 向一个父结点为3结点的3结点中插入新键4:跟上面套路类似,不断将中位数的数据往上提,直到遇到个2节点,或者到达了根节点然后进行拆分。
插入总结:
- 先找插入结点,若结点是2结点,则直接插入。如结点3结点,则插入使其临时容纳这个元素,然后分裂此结点,把中间元素移到其父结点中。对父结点亦如此处理。(中键一直往上移,直到找到空位,在此过程中没有空位就先搞个临时的,再分裂。)
- 2-3树插入算法的根本在于这些变换都是局部的:除了相关的结点和链接之外不必修改或者检查树的其他部分。每次变换中,变更的链接数量不会超过一个很小的常数。所有局部变换都不会影响整棵树的有序性和平衡性。
小编强力推荐C 后端开发免费学习地址:
2-3树的删除分为两种情况。
- 如果待删除元素在3节点,那么可以直接将这个元素删除,删除这个元素不会引起高度的变化。