红黑树与平衡二叉树的原理和区别

红黑树与平衡二叉树的原理和区别一 平衡二叉树平衡二叉树或者是空树 或者是具有如下特征的二叉排序树 1 左子树和右子树的深度之差的绝对值不超过 1 2 左子树和右子树也是平衡二叉树 若将二叉树上结点的平衡因子 BalanceFacto BF 定义为该结点左子树和右子树的深度之差 则平衡二叉树上所有结点的平衡因子只可能觅 1 0 和 1 只要二叉树上有一个结点的平衡因子的绝对值大于 1 则该二叉树就是不平衡

一.平衡二叉树

二. 红黑树

红黑树是一种含有红黑结点并能自平衡的二叉查找树。它必须满足下面性质:

性质1:每个节点要么是黑色,要么是红色。
性质2:根节点是黑色。
性质3:每个叶子节点都是黑色的空节点(NIL节点)
性质4:每个红色结点的两个子结点一定都是黑色。
性质5:任意一结点到每个叶子结点的路径都包含数量相同的黑结点。
从性质5又可以推出:
性质5.1:如果一个结点存在黑子结点,那么该结点肯定有两个子结点





三. 区别

1、红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保证每次插入最多只需要三次旋转就能达到平衡,实现起来也更为简单。

2、平衡二叉树追求绝对平衡,条件比较苛刻,实现起来比较麻烦,每次插入新节点之后需要旋转的次数不能预知。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177340.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:45
下一篇 2026年3月26日 下午7:45


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号