2-3-4树

2–3–4树
类型
大O符号表示的时间复杂度
算法 平均 最差
空间 O ( n ) {\displaystyle O(n)} O ( n ) {\displaystyle O(n)}
搜索 O ( log n ) {\displaystyle O(\log n)} O ( log n ) {\displaystyle O(\log n)}
插入 O ( log n ) {\displaystyle O(\log n)} O ( log n ) {\displaystyle O(\log n)}
删除 O ( log n ) {\displaystyle O(\log n)} O ( log n ) {\displaystyle O(\log n)}

2-3-4树(英語:2–3–4 tree)在计算机科学中是阶为4的B树。

大体同B树,2-3-4树是一种自平衡数据结构,可用於實作字典。它可以在 O ( log n ) {\displaystyle {\text{O}}(\log n)} 时间内查找、插入和删除,这里的n是树中元素的数目。

2-3-4树在多数编程语言中实现起来相对困难,因为在树上的操作涉及大量特殊情况。红黑树实现起来更简单一些,所以可以用它来替代。

背景

2-3-4树把数据存储在叫做元素的单独单元中。它们组合成节点,每个节点都是下列之一

  • 2-节点,就是说,它包含1个元素和2个子節點,
  • 3-节点,就是说,它包含2个元素和3个子節點,
  • 4-节点,就是说,它包含3个元素和4個子節點。
2-节点
3-节点
4-节点

每个子節點(可能为空)都是一个子2-3-4树。节点是其中没有父亲的那个节点;它在遍历树的时候充当起点,因为从它可以到达所有的其他节点。叶子节点是有至少一个空子節點的节点。

同B树一样,2-3-4树是有序的:每个元素必须大于或等于它左边的和它的左子树中的任何其他元素。每个子節點因此成为了由它的左和右元素界定的一个区间

2-3-4树是紅黑樹的一种等同,这意味着它们是等价的数据结构。换句话说,对于每个2-3-4树,都存在着至少一个数据元素是相同次序的红黑树。在2-3-4树上的插入和删除操作也等价于在红黑树中的颜色翻转和旋转。这使得它成为理解红黑树背后的逻辑的重要工具。

二叉树
自平衡二叉查找树
B树
  • B+树
  • B*树
  • Bx
  • UB树
  • 2-3树
  • 2-3-4树
  • (a,b)-树英语(a,b)-tree
  • 跳舞樹英语Dancing tree
  • H树
Trie
二叉空间分割(BSP)
非二叉树
  • 指数树英语Exponential tree
  • 融合树英语Fusion tree
  • PQ树英语PQ tree
  • SPQR树英语SPQR tree
空间数据分割树
其他树
  • 散列日历
  • 散列树
  • 手指樹英语Finger tree
  • 顺序统计树
  • 度量樹英语Metric tree
  • 覆蓋樹英语Cover tree
  • BK树
  • 二重連鎖樹英语Doubly chained tree
  • iDistance英语iDistance
  • Link-cut tree英语Link-cut tree
  • Log-structured merge-tree英语Log-structured merge-tree
  • 树状数组
  • 哈希树