2-3查找树(三):全局性质和轨迹图例
1. 局部变换和全局性质
通过之前插入操作的讲解,我们可以发现这么一个现象:
几乎所有的插入情况,都是局部变换。每次变换中,变更的链接数量不会超过一个很小的常数。每个变换都会将4-结点中的一个键送入它的父结点中,并重构相应的链接而不必涉及树的其他部分。1
那么,这种局部变换操作是不是能保证2-3树全局的有序性和完美平衡性呢?
首先,关于有序性,这个是每个变换操作保证了的,无论我们是将原来2-结点变成3-结点,还是将3-结点变成临时4-结点,或是将4-结点分解成3个2-结点,我们在变换的过程中,都保证了所有涉及键的有序性,所以整棵2-3树的有序性,也能得到保证。
其次,关于完美平衡性。我们发现,2-结点变成3-结点是不会有任何变换,也不会改变树的结构,所以不会影响完美平衡性。唯一能影响树平衡性的只有分解4-结点,但是只有4-结点在根的情况下,我们才进行分解,其余情况都是向上把中键“踢”给父级。所以该层的子节点也是平衡的。那么,4-根节点的分解也不会造成树的不平衡,因为之前我们说过,分解之后,所有左右子树高度都加1,“众生皆平等”原则,所以分解之后的树,虽然高度加1了,但还是完美平衡的。
感兴趣的童鞋,可以深入阅读以下教材上面( 3.3.1.7 局部变换 和 3.3.1.8 全局性质1)关于这部分的论证和图例,加深理解。但是上面说的论据已经能充分说明2-3树的插入局部变换,是能保证2-3树全局的有序性和完美平衡性。
2. 2-3树的构造轨迹图例
这里给到一个2-3树的构造轨迹图例1,大家可以自己跟着自己构造一棵2-3树,加深对2-3树插入操作的理解。

到此,2-3树的讲解全部结束啦,坚持看到这里小伙伴们,恭喜啦哒,你已经对红黑树有了一定的了解啦!嗯?红黑树不还是只字未提么?怎么就有一定了解了呢?这是因为红黑树是2-3树的一种等价实现结构,所以熟悉了2-3树,一定程度上也就熟悉了红黑树。
这部分理论知识偏多,所以相对比较枯燥。那么,接下来我们将正式进入红黑树的讲解,我们将来看看如何用BST和代码来实现2-3树的设计理念。继续加油啦哒~
上一节:2-3查找树(二):插入
下一节:红黑树(一):基本概念和数据结构
系列汇总:超详细!红黑树详解文章汇总(含代码)
3. 特别感谢
- 感谢 @SENNICHEN 制作系列文章封面图
4. 免责声明
※ 本文之中如有错误和不准确的地方,欢迎大家指正哒~
※ 此项目仅用于学习交流,请不要用于任何形式的商用用途,谢谢呢;


本文探讨了2-3树的局部变换操作如何保证其全局有序性和完美平衡性。通过插入示例解释了局部调整对整体结构的影响,并提供了构造轨迹图例和理论论证。理解这些特性有助于进一步学习红黑树,因其与2-3树紧密相关。
:全局性质和轨迹图例&spm=1001.2101.3001.5002&articleId=117406133&d=1&t=3&u=d2c1772c994e433a974439ecd0be94b1)
2988

被折叠的 条评论
为什么被折叠?



