红黑树被定义

红黑树被定义成:

  • 一棵二叉树,每一个节点要么是红色,要么是黑色
  • 根节点一定是黑色
  • 红节点不能有红孩子
  • 每条从根节点到底部的路径都经过同样数量的黑节点

看个例子,这棵红黑树的根节点值是 13,是一个黑色节点。

比如红节点 8 的两个孩子是黑色节点 1 和 11,因为红节点不能有红孩子。

可以看到,从根节点 13 通向 22 的路径,经过了 13 和 25 这两个黑节点;从根节点 13 通向 11 的路径,经过了 13 和 11 这两个黑节点。因为最后一个定义就是说:

 

满足这些定义的红黑树可以被数学证明树的高度为 O(log n)。

要实现一棵红黑树是非常难的,其中有许多节点“插入 / 删除”需要用到旋转等操作细节,我们在这一讲中无法展开讲解,可自行查阅资料学习。

原文地址:https://www.cnblogs.com/muzhongjiang/p/15151157.html