红黑树的概念
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。他是1972年有鲁道夫.贝尔发明的。他称之为堆成二叉B树,他可以O(long)时间内做查找,插入和删除,这里的n是书中元素的数目。
二叉查找树(Binary Search Tree)也称之为二叉搜索树,有序二叉书或者二叉书,是指一颗空树或者具有下列性质的二叉树:
1.若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值
2.若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值
3.任意节点的左右书分别为二叉查找树
4.没有键值相等的节点
红黑树的特点
- 每一个节点不是红色就是黑色
- 根节点总是黑色的
- 每一个叶子节点都是黑色的空节点(NIL节点)
- 如果一个节点是红色,那么它的子节点一定是黑色的(反之不一定成立)
- 从根节点到任意一个最底下的子节点,这条路径中所包含的黑色节点个数必须是相同的(即黑色节点的高度是相同的)
- 在插入节点的时候,插入的节点一定是红色节点
平衡性修正
1.变色
2.左旋
3.右旋
实例讲解
现在有一串数:11,2,14,1,7,13,5,8,需要来构建一颗红黑树,如何构建?