分类
2-3树
背景
AVL树在二叉查找树的基础上限制了高度差(高度差<=1),让二叉查找树从没有平衡限制到有平衡限制,避免二叉查找树性能退化,但AVL树还是可能存在高度差(高度差为1),那么是否有一种树结构是绝对平衡(高度差为0,所有叶子结点处于同一层)的呢?于是,John Edward Hopcroft在1970年提出了2-3树;
定义
2-3树是在AVL树的基础上提出的一种新的树结构,2-3树满足如下定义(2-3树并不是二叉树,但是平衡查找树):
-
2-3树中有两种类型的节点:
-
2节点:一个key,两个子树,满足BST性质;
-
3节点:两个key,三个子树,满足BST性质;
-
-
所有叶节点都在同一层;
基本操作
特点
-
和标准的二叉查找树由上向下生长不同,2-3树的生长是由下向上的:随着结点的插入,临时4-结点的中键不断上浮,一旦根节点变成临时4-结点,我们可以分解根结点完成树的生长,使得树高加1。
优缺点分析
-
优点:绝对平衡,查找效率高;
-
缺点:维护成本高(2-3节点和树结构的维护逻辑复杂);