红黑树的代码实现,可在二分搜索树的代码上修改之后得到。
1 《算法导论》中的红黑树
- 每个节点或者是红色的,或者是黑色的;
- 根节点是黑色的
- 每个叶子节点(最后的空节点)是黑色的;
- 如果一个节点是红色的,那么他的孩子节点都是黑色的;
- 从任意一个节点到叶子节点,经过的黑色节点是一样的。
2 红黑树与2-3树
- 只看红黑树的定义是晦涩难懂的
- 其实红红黑树与2-3树是等价的:
- 将2-3树中的3节点的左边的元素变成右边元素的左孩子,并标记成红色,那么,这就是一棵左倾红红黑树。
- 所以1.2根节点一定是黑色的;
- 1.3定义了空节点是黑色的;
- 1.5红黑树是一棵黑平衡的二叉树。
