数据
2-3-4树
定义:
2-3-4树是一种自平衡的树数据结构,它是B树(B-tree)的一个特例,通常用于数据库和文件系统的索引结构中,以维持数据的有序性并允许搜索、顺序访问、插入、删除等操作都能在对数时间内完成。2-3-4树确保树的深度最小,从而优化这些操作的效率。
节点类型:
二节点:存一个数据,分出2个叉
三节点:存二个数据,分出3个叉
四节点:存三个数据,分出4个叉
特征
有序性:节点中的关键字按照升序排列,以保持节点的有序性。
完全性:除了根节点外,所有节点都尽可能地保持满(即接近其最大子节点数)。但需要注意的是,2-3-4树本身保证了节点至少有⌈m/2⌉个子节点(对于m=4的情况,即至少2个子节点),但并不要求节点总是满的。
叶子节点:所有叶子节点都位于同一层,即树的底部。在2-3-4树中,叶子节点不包含关键字,但可以作为树结构的一部分来保持树的平衡。
分裂与合并:当向树中插入新的关键字时,如果节点变得太满(即成为4节点),则需要进行分裂操作。分裂操作涉及将节点中的一个关键字移动到父节点(如果父节点已满,则也需要分裂),并相应地调整子节点的链接。
实例:
构成的树:
那么2-3-4树怎么转换成红黑树呢?
转换关系如下
红黑树
可以由2-3-4树转换成红黑树
定义:
1.每个节点不是红色就是黑色
2.根节点永远是黑色
3.每个叶子节点(NIL节点,空节点)都是黑色的,并且值是null
4.如果一个节点是红色的,则他的子节点必须是黑色的
5.从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑色节点
6.最长路径:黑+红+黑+红+黑+红
7.最短路径:黑+黑+黑
7.红黑树上没有一条路径比其他路径长超过2倍
时间复杂度:红黑树可以在O(log n)时间内完成查找、插入和删除操作,这里的n是树中元素的数目。
由上面的数据构成的红黑树: