2-3-4树和红黑树 红太狼 2022-07-13 14:39 42阅读 0赞 一、2-3-4树和红黑树的关系 可以证明2-3-4树和红黑树在数学上是同构(等价)的。在历史上,也是2-3-4树先被提出来,后来红黑树由它发展而来。 二、如何把2-3-4树转为红黑树 有三条规则分别对应有2,3,4个子节点的情况: 1、若该节点有两个子节点,则把该节点转为红黑树中的黑色节点。 ![20170113091624318][] 2、若该节点有三个子节点,则节点中存有两个数据项,将这节点转为两个节点中来存储这两个数据项,这两个节点构成父子关系。并把父节点设为黑色节点。把该节点的子节点中的两个拿出来作为新生成子节点的子节点,剩下的一个子节点直接连接在新生成的父节点上。有根据生成子节点的左右关系有两种生成方式: ![20170113092305515][] ![20170113092325484][] 3、若该节点有四个子节点,则存有三个数据项。我们将该节点其转化为一个父节点和两个子节点。把父节点设为黑色节点,再把原来的四个子节点连接到新的子节点上即可。 ![20170113092645816][] 可以验证按照上述三个规则,把一个2-3-4树转换后形成的树,是符合红黑树的规则的,就是一颗红黑树。 ![20170113092951053][] 也可验证红黑树的颜色变换和2-3-4树的4-节点分裂操作是等价的 ![20170113093734845][]![20170113093821320][] 红黑树的旋转操作和2-3-4树的3-节点分裂等价 ![20170113094219212][] ![20170113094235821][]![20170113094255072][] 三、两者的效率分析: 与一般的二叉搜索树一样,红黑树的查找、插入和删除的时间复杂度都是O(logN),存储空间上多了一个存储颜色的boolean变量。事实上,红黑树的插入操作比普通二叉搜索树要慢一点,因为在插入过程中需要进行一些一切其他操作以保证树的平衡。这点消耗是值得的,这使得红黑树对有序数据的操作不会慢到O(N)的地步。 2-3-4树的复杂度与红黑树一致,但是存储空间的利用率没有红黑树高。但是在java语言中,存储的往往是对象的引用而不是对象本身,这就使得两者差异没那么重要了。可以看出2-3-4树的java实现要比红黑树简单,所以更加常用。对于其他保存数据不是引用的语言平台,则需要慎重考虑两者的优劣。 四、关于树中的删除操作 在树中删除一个节点是十分复杂的。一种解决方法是在节点中加入一个boolean数据项,用来表示该节点是否存在或删除。这种方法并没有把节点从树中正真移除,只是我们不能再去访问这个节点的内容而已。 参考文献: java数据结构与算法(第二版) [20170113091624318]: /images/20220713/57c7422109044288873b8a2ef281d18d.png [20170113092305515]: https://img-blog.csdn.net/20170113092305515 [20170113092325484]: /images/20220713/63bccfe905104147aac38fa47e90ae45.png [20170113092645816]: /images/20220713/67fc68a61a284a598ff7f6b59129fccb.png [20170113092951053]: /images/20220713/b5a7af9099db4b5e909d0c7e0bacda44.png [20170113093734845]: https://img-blog.csdn.net/20170113093734845 [20170113093821320]: /images/20220713/f555dd5269ca4c8982957472f211f02f.png [20170113094219212]: /images/20220713/190a86fa85d84cda968638cf8b535cc9.png [20170113094235821]: https://img-blog.csdn.net/20170113094235821 [20170113094255072]: /images/20220713/c59bea34643a4e64b500e08997b51ce5.png
相关 红黑树和红黑树的原理详解 红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为“对称二叉B树”,它现代的名字是在 L 不念不忘少年蓝@/ 2023年09月27日 11:44/ 0 赞/ 261 阅读
相关 红黑树和B+树 (一)红黑树 红黑树是一种自平衡二叉查找树,也被称为"对称二叉B树",它可以在O(logn)时间内利用 O(logn)的空间来完成查找、插入、删除操作。红黑树的读操作与普 怼烎@/ 2023年06月21日 08:56/ 0 赞/ 15 阅读
相关 树:红黑树 1,红黑树引入 红黑树是对AVL树的补充。AVL树要求整个树的高度差不能超过1,超过后需要进行左旋或者右旋操作再次对树进行平衡,虽然这样能够解决二叉树退化为链表的缺 ╰半橙微兮°/ 2023年02月28日 01:25/ 0 赞/ 316 阅读
相关 红黑树 红黑树的定义 每个节点要么是红色,要么是黑色。 根节点必须是黑色, 每个叶子节点是黑色(叶子节点包含NULL)。 红色节点不能连续(红色节点的孩子和父亲 Dear 丶/ 2022年12月13日 04:18/ 0 赞/ 136 阅读
相关 红黑树 红黑树(Red Black Tree) 是一种自平衡二叉查找树,红黑树和AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能,它虽然 谁践踏了优雅/ 2022年06月15日 12:57/ 0 赞/ 625 阅读
相关 红黑树 > 3.3 Balanced Search Trees > [http://algs4.cs.princeton.edu/33balanced/][http_algs4.c ╰+攻爆jí腚メ/ 2022年06月09日 12:48/ 0 赞/ 468 阅读
相关 红黑树 红黑树 概念 红黑树,又被称为对称二叉B树。 [红黑树模型][Link 1] 其本质是一种二叉查找树,单它在二叉查找树的基础上额外添加了一个标记(颜色),同时具 拼搏现实的明天。/ 2022年04月10日 02:39/ 0 赞/ 562 阅读
相关 红黑树 先Mark,后续补充: [https://juejin.im/entry/58371f13a22b9d006882902d][https_juejin.im_entry_58 柔情只为你懂/ 2022年01月30日 14:57/ 0 赞/ 463 阅读
相关 红黑树 二叉查找树(BST) 1.左子树上所有结点的值均小于或等于它的根结点的值。 2.右子树上所有结点的值均大于或等于它的根结点的值。 3.左、右子树也分别为二叉排序树。 下 川长思鸟来/ 2021年10月24日 01:48/ 0 赞/ 521 阅读
相关 红黑树 1. 从 2-3 树说起 一棵标准的 BST (二叉查找树 / 二叉搜索树)是长这个样子的: BST 其中,这棵二叉查找树中的每个结点也叫 2-结点 ,2-结点 就表示树... 系统管理员/ 2020年11月29日 04:30/ 0 赞/ 999 阅读
还没有评论,来说两句吧...