目前最详细的红黑树原理分析(大量图片+过程推导!!!) 一.为什么要有红黑树这种数据结构? 我们知道ALV树是一种严格按照定义来实现的平衡二叉查找树,所以它查找的效率非常稳定,为O(log n),由于其严格按照左右子树高度差不大于1的规则,插入和删除操作中需要大量且复杂的操作来保持ALV树的平衡(左旋和右旋),因此ALV树适用于大量查询,少量插入和删除的场景中 那么假设现在假设有这样一种场景:大量查询,大量插入和删除,现在使用ALV树就不太合适了,因为ALV树大量的插入和删除会非常耗时间,那么我们是否可以降低ALV树对平衡性的要求从而达到快速的插入和删除呢? 答案肯定是有的,红黑树这种数据结构就应运而生了(因为ALV树是高度平衡的,所以查找起来肯定比红黑树快,但是红黑树在插入和删除方面的性能就远远不是ALV树所能比的了) 二.红黑树的简介 红黑树是一种特殊的二叉查找树,每个结点都要储存位表示结点的颜色,或红或黑 红黑树的特性: 1)每个结点或红或黑 2)根结点是黑色 3)空叶子结点是黑色 4)如果一个结点是红色,那么它的子节点是黑色 5)从任意一个结点出发到空的叶子结点经过的黑结点个数相同(比如下图中80到任意一个空叶子结点经过的黑结点都是3) 示意图:(红黑树首先是一颗搜索树,所以左子树点小于根结点,右子树大于根节点,等于根结点的按照自己的需要放左边和右边都是可以的)(红黑树不仅是一颗搜索树还是一颗非严格的平衡树) 图1 































2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/25107.html