0043数据结构之红黑树
----------------------红黑树----------------------------- 红黑树仍然是一颗二分搜索树,和AVL一样,都是在二分搜索树的基础上加了一些限制条件:具体的5个限制条件如下: 1) 每个节点或者是红色的,或者是黑色的 2) 根节点是黑色的 3) 每一个叶子节点(最后的空节点叫叶子节点)是黑色的 4) 如果有一个节点是红色的,那么它的两个孩子节点都是黑色的 5) 从任意一个节点到叶子节点,经过的黑色节点是一样的 2-3树是一颗绝对平衡的树:从根节点到任意一个叶子节点经过的节点数是相同的,是通过融合(新加的节点一定是先和父亲节点融合,红黑树也是这个原理,所以红黑树新加的节点一定是红色的,即构造方法默认红色)-拆分-融合的形式来保证绝对平衡的。 红色的节点:代表他和它的父亲是融合在一起的 ,代表2-3树中的3节点 红黑树是“黑平衡”的二叉树:即红黑树限制条件的第5条,任意节点到叶子节点经过的黑色节点是相同的。 严格意思上来讲,不是平衡儿二叉树,即左右子树的高度差是有可能大于1的。红黑树最大高度2logn,所以时间复杂度是O(logn)的 红黑树与AVL树相比: 查找:红黑树略慢于AVL树 新增和删除:红黑树快于AVL树 所以如果存储的数据经常发生新增和删除:选择红黑树 如果存储的数据基本不发生变化,只是用于查询:选择AVL树