一棵2-3查找树或为一颗空树,或由以下节点组成: 2-节点:含有一个键和两条链接,左链接指向的2-3树中的键都小于该节点,右链接指向的2-3树中的键都大于该节点。 3-节点:含有两个键和三条链接,左链接指向的2-3树中的键都小于该节点,中链接指向的2-3树中的键都位于该节点的两个键之间,右链接指向的2-3...
2-3树是在原来AVL树的基础上提出一种新的树结构,我们都知道二叉搜索树可以加速查询操作,而AVL树在二叉搜索树的基础上限制了高度差(树高 <= 1),从而使得AVL高度平衡。但是根据前面数据结构与算法之平衡二叉树所介绍,AVL树在插入、删除操作方面会引起结构的变化,从而导致结构的多次调整(左旋右旋)。 从没有平衡限制...
2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树,其节点可拥有3个孩子。不过,2-3树与满二叉树相似。若某棵2-3树不包含3-节点,则看上去像满二叉树,其所有内部节点都可有两个孩子,所有的叶子都在同一级别。另一方面,2-3树的一个内部节...
2-3 树的定义如下: (1)2-3 树要么为空要么具有以下性质: (2)对于 2- 节点,和普通的 BST 节点一样,有一个数据域和两个子节点指针,两个子节点要么为空,要么也是一个2-3树,当前节点的数据的值要大于左子树中所有节点的数据,要小于右子树中所有节点的数据。
3.向一个父节点为2-节点的3-节点中插入元素; 4.向一个父节点为3-节点的3-节点中插入元素。 向2-节点中插入元素 如果未命中查找结束于2-节点,直接将2-节点替换为3-节点,并将待插入元素添加到其中。 向一颗只含有一个3-节点的树中插入元素 如果命中查找结束于3-节点,先临时将其成为4-节点,把待插入元素...
与二叉搜索树十分类似,2-3的查询操作定义如下: 1. 递归的退出条件(k是想要查找的关键字,T是查找到的那个节点) a) T是空,返回False b) T是叶子节点:如果 T 的值是 k,返回True 2. 递归的情况 a) k <= T.leftMax: 继续查找左子树 b) T.leftMax < k <= T.middleMax: 继续查找中子树 ...
下面演示2-3树的建立过程,将包含所有情况: 42 是第一个插入的元素,作为2-3树的根节点。 现在要将37插入到这颗2-3书中,根据第一个特征:如果插入位置节点的父节点的左右孩子都为空,则就和父节点进行融合,根据大小值,37应该插入到42的左孩子位置,但是42的左右孩子此时均为空,所以应该进行融合,此时 37 和 42...
2-3树,大家也有所耳闻,2-3树存在三种节点,第一种是2-节点,数据域有一个值,指针域有两个值;第二种是3-节点,数据域有2个值,指针域有3个值;还有一种是空节点,如下图所示: 2-3树的插入和构建过程如下图所示,可参考:https://www.cnblogs.com/eniac12/p/5558848.html,介绍的很详细 ...