掌握了2-3-4树也就掌握了红黑树,不信进来看看,建议收藏! 朴灿烈づ我的快乐病毒、 2022-10-06 15:57 149阅读 0赞 红黑树的本质是2-3-4树,所以我们先掌握了2-3-4树,那么红黑树就非常容易了。本文重点来介绍2-3-4树。 # 2-3-4树 # ## 1 概念介绍 ## 2-3-4树是四阶的 B树(Balance Tree),他属于一种多路查找树,它的结构有以下限制: 所有叶子节点都拥有相同的深度。 节点只能是 2-节点、3-节点、4-节点之一。 * 2-节点:包含 1 个元素的节点,有 2 个子节点; * 3-节点:包含 2 个元素的节点,有 3 个子节点; * 4-节点:包含 3 个元素的节点,有 4 个子节点; 所有节点必须至少包含1个元素 元素始终保持排序顺序,整体上保持二叉查找树的性质,即父结点大于左子结点,小于右子结点; 而且结点有多个元素时,每个元素必须大于它左边的和它的左子树中元素。 下图是一个典型的 2-3-4树 ![在这里插入图片描述][20210614223323277.png] ## 2 生成的过程 ## 接下来我们通过演示来看看2-3-4树生成的过程 第一次插入—2节点 ![在这里插入图片描述][20210614223353279.png] 插入第二个节点–3节点 合并 ![在这里插入图片描述][20210614223404241.png] 插入第三个节点—4节点 合并 ![在这里插入图片描述][20210614223414953.png] 插入第4个节点—需要分裂 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70] 插入6 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 1] 插入7 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 2] 插入8 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 3] 插入9 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 4] 插入10 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 5] 插入11 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 6] 插入12 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 7] 最后我们插入1来看看效果 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 8] 到这儿相信大家对于2-3-4树应该有了个直观的认知了。 ## 3 和红黑树的等价关系 ## 红黑树起源于2-3-4树,它的本质就是2-3-4树。 ### 3.1 2节点 ### 一个2节点对应的红黑树节点就是一个黑色节点 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 9] ### 3.2 3节点 ### 一个三节点可以有两种情况的红黑树节点,一种是右倾,一种是左倾,所以一个2-3-4树可以有多个红黑树 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 10] 原则:上黑下红 ### 3.3 4节点 ### 一个四节点转换的情况只有一种,中间节点黑色,左右节点红色 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 11] ### 3.4 裂变状态 ### 还有就是在2-3-4树中存在的裂变状态。转换为红黑树后会先变色(不能有两个相邻的红色节点)。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 12] ## 4 转换为红黑树 ## 接下来具体看看一个2-3-4树是如何转换为对应的红黑树的, 原始的2-3-4树: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 13] 按照右倾规则来转换为: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 14] 转换后满足黑色节点平衡的要求 按照左倾规则来转换为: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 15] 通过对2-3-4树和红黑树的等价关系,对于我们后面分析红黑树的内容会非常有帮助!!! [20210614223323277.png]: /images/20221005/0e230fb21a674d59a66aa95f80c5e00f.png [20210614223353279.png]: /images/20221005/d19f07bb48a1409bb107827133d4f86f.png [20210614223404241.png]: /images/20221005/12e3dd84dbaf43cf80cac292e9185311.png [20210614223414953.png]: /images/20221005/6d7610678d834f4d942c2a7ef1bd75bb.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70]: /images/20221005/86bffad1fcd14f5893a61d5055f7a9ff.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 1]: /images/20221005/a82f3249cb1f4b18b2f9871b2768d9d7.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 2]: /images/20221005/4ed6f6eedb5848a29ab0ce378cc08f87.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 3]: /images/20221005/f837478e799e40e9a7be97924eb6daa1.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 4]: /images/20221005/2e29869a8e1a465b9437d8323c425147.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 5]: /images/20221005/64893b8fd6b8485493b509f260cd4331.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 6]: /images/20221005/077dd671357e4002969834948974900d.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 7]: /images/20221005/7ae51fa1f4ce426d873aafe09fe92aff.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 8]: /images/20221005/3ba78b84586c45578fccf7176858dd9f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 9]: /images/20221005/30d84899f3b64567919127c0d2eaee52.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 10]: /images/20221005/c5ba2707f3004731bf918e86b236704a.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 11]: /images/20221005/11c4b3cab8874be387be26d6073d10de.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 12]: /images/20221005/6961289b7c0d4836a2492c20cfb07f71.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 13]: /images/20221005/55ee4b778c4f4685aa85eadb9acd5fd9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 14]: /images/20221005/6ba212219be14fea8ff05fd40065cf04.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4NTI2NTcz_size_16_color_FFFFFF_t_70 15]: /images/20221005/7138f10a5583476e92d3e4c5fab80349.png
相关 树:红黑树 1,红黑树引入 红黑树是对AVL树的补充。AVL树要求整个树的高度差不能超过1,超过后需要进行左旋或者右旋操作再次对树进行平衡,虽然这样能够解决二叉树退化为链表的缺 ╰半橙微兮°/ 2023年02月28日 01:25/ 0 赞/ 138 阅读
相关 掌握了2-3-4树也就掌握了红黑树,不信进来看看,建议收藏! 红黑树的本质是2-3-4树,所以我们先掌握了2-3-4树,那么红黑树就非常容易了。本文重点来介绍2-3-4树。 2-3-4树 1 概念介绍 2-3-4树是 朴灿烈づ我的快乐病毒、/ 2022年10月06日 15:57/ 0 赞/ 150 阅读
相关 红黑树 > 3.3 Balanced Search Trees > [http://algs4.cs.princeton.edu/33balanced/][http_algs4.c ╰+攻爆jí腚メ/ 2022年06月09日 12:48/ 0 赞/ 339 阅读
相关 红黑树 红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在[计算机][Link 1]科学中用到的一种[数据结构][Link 2],典型的用途是实现[关联数组][Lin 刺骨的言语ヽ痛彻心扉/ 2022年04月23日 12:06/ 0 赞/ 283 阅读
相关 红黑树 转自 \[url\]http://www.cnblogs.com/fornever/archive/2011/12/02/2270692.html\[/url\] Dear 丶/ 2022年04月11日 05:50/ 0 赞/ 355 阅读
相关 红黑树 红黑树 概念 红黑树,又被称为对称二叉B树。 [红黑树模型][Link 1] 其本质是一种二叉查找树,单它在二叉查找树的基础上额外添加了一个标记(颜色),同时具 拼搏现实的明天。/ 2022年04月10日 02:39/ 0 赞/ 431 阅读
相关 红黑树 红黑树 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑 Myth丶恋晨/ 2022年02月24日 07:30/ 0 赞/ 410 阅读
相关 红黑树 先Mark,后续补充: [https://juejin.im/entry/58371f13a22b9d006882902d][https_juejin.im_entry_58 柔情只为你懂/ 2022年01月30日 14:57/ 0 赞/ 333 阅读
相关 红黑树 介绍 红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍 墨蓝/ 2021年09月14日 23:34/ 0 赞/ 532 阅读
相关 红黑树 1. 从 2-3 树说起 一棵标准的 BST (二叉查找树 / 二叉搜索树)是长这个样子的: BST 其中,这棵二叉查找树中的每个结点也叫 2-结点 ,2-结点 就表示树... 系统管理员/ 2020年11月29日 04:30/ 0 赞/ 832 阅读
还没有评论,来说两句吧...