2-3查找树(2-3 Search Tree)保证在最坏的情况下插入和查找效率都能保证在对数的时间复杂度内完成。 2-3查找树概述 2-3树是最简单的B-树(或-树)结构,其每个非叶节点都有两个或三个子女,而且所有叶都在统一层上。2-3树不是二叉树,其节点可拥有3个孩子。不过,2-3树与满二叉树相似。 和二叉树不一样...
(1)所删元素位于一个3节点的叶子节点上,直接删除,不会影响树结构。 (2)所删元素位于一个2节点上,直接删除,破坏树结构,所以需要分情况讨论 分4种情况 1)此节点双亲也是2节点,且拥有一个3节点的右孩子; 2)此节点的双亲是2节点,它右孩子也是2节点; 3)此节点的双亲是3节点; 4)当前树是一个满二叉树,降低...
数据结构与算法 2-3树是一种特殊的树,它满足两个条件2-3树是一种特殊的树,它满足两个条件(1)每个内部结点有两个或三个子结点;(2)所有的叶结点到根的路径长度相同;如
在数据结构(五):树中的二叉查找树中,我们发现当二叉树平衡时,我们查找一个元素需要遍历的层级是log(N+1),按照大O算法可得时间复杂度为logN,这种查找比链表和数组的O(N)算法要 高效得多。 但是当二叉树不平衡时,我们发现它的查找效率依旧是O(N),比如如下情况: 二、2-3树概述 为了保证二叉树的平衡,提高树...
2-3树是在原来AVL树的基础上提出一种新的树结构,我们都知道二叉搜索树可以加速查询操作,而AVL树在二叉搜索树的基础上限制了高度差(树高 <= 1),从而使得AVL高度平衡。但是根据前面数据结构与算法之平衡二叉树所介绍,AVL树在插入、删除操作方面会引起结构的变化,从而导致结构的多次调整(左旋右旋)。
在前几篇文章中介绍了 2-3 树的定义以及插入删除操作。本篇文章将在 2-3 树的基础上更进一步,介绍比 2-3 树更为复杂的数据结构2-3-4树。之所以介绍 2-3-4 树是因为 2-3-4 树与极为重要的红黑树有着等价关系,通过先学习2-3-4 树为后面学习红黑树打下基础,增进对于红黑树的理解。
3)左、右子树也分别是一棵二叉排序树 通过引入结点度大于 2 的排序树,可以得到一种插入算法和删除算法都比二叉排序树简单的树结构,且这些算法的时间复杂性仍是 O(logn) 。这种树结构称为2-3树。2-3树的名字反映出 2-3树 具有如下性质: 一棵 2-3树 中的每个内部结点的度或者是2,或者是3。其中度为2的...
2-3树是一颗绝对平衡的树,所谓的绝对平衡是指在2-3树中从根节点到任意叶子结点所经过的节点数是一样的。 为了保持2-3树的绝对平衡,在元素插入时有以下特征: 如果插入位置节点的父节点的左右孩子都为空,则就和父节点进行融合 如果和一个三节点的节点融合,则可以先融合成四节点,四节点在拆分为以中间大小元素为...
(2)对于 2- 节点,和普通的 BST 节点一样,有一个数据域和两个子节点指针,两个子节点要么为空,要么也是一个2-3树,当前节点的数据的值要大于左子树中所有节点的数据,要小于右子树中所有节点的数据。 (3)对于 3- 节点,有两个数据域 a 和 b 和三个子节点指针,左子树中所有的节点数据要小于a,中子树中所...
一、2-3查找树 2-3查找树是一种能够在动态插入当中保持完美平衡的数据结构,完美平衡即树中的所有空链接到根节点的距离都是相同的。在一棵大小为N的2-3树中,查找和插入操作访问的结点必然不超过lgN个。为了保证查找树的平衡性,我们需要一些灵活性,因此在这里我们允许树中的一个结点保存多个键。