红黑树
红黑树是一种自平衡的二叉查找树。
红黑树具有五个特性:1.节点非红即黑。2.根节点是黑色。3.所有NULL结点称为子节点,且认为颜色为黑。4.所有的红节点的子节点都为黑色。5.从任一节点到其叶子节点的所有路径上都包含相同数目的黑节点。
以上可知:从根到叶子的最长路径不多于最短可能路径的两倍长。因为红黑树中最短的可能路径是全部为黑色节点的路径,就是根节点为黑,然后子节点为空也是黑的;最长的路径可能是红黑相间的路径,也就是说最长的可能就是黑,红,黑,红。
所以结果就是这个树上大致是平衡的,因为比如插入,删除和查找某个值这样的操作最坏情况都要求与树的高度成比例,这个高度的理论上限允许红黑树在最坏情况下都是高效的,而不同于普通的二叉查找树,最终保证了红黑树能够以O(log2n)的时间复杂度进行搜索、插入、删除。