1、概念和特色 spa
红黑数(Red-black tree)是一种自动平衡的二叉查找树,又称对称二叉树。blog
红黑树是每一个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。排序
回顾二叉查找树的知识:二叉查找树(Binary Search Tree),也称为二叉搜索树、有序二叉树(ordered binary tree)或者排序二叉树(sorted binary tree)。ip
二叉查找树(BST)的特色:get
1.若任意节点的左子树不为空,则左子树上全部节点的值均小于它的根节点的值it
2.若任意节点的右子树不为空,则右子树上全部节点的值均大于它的根节点的值io
3.任意节点的左、右子树也分别为二叉查找树二叉树
4.没有键值相等的节点搜索
回顾平衡二叉树的知识:im
除了二叉树查找树(BST)的特色之外,
它还包含如下几个特色:
1.节点是红色或者黑色
2.根节点必定是黑色的
3.叶子节点是黑色的(NIL)[nil 节点就是空节点,在红黑树的实现中,nil 节点代替二叉树中的 NULL]
4.若是一个节点是红色的,则它的子节点必须是黑色的
5.从任一节点到其每一个叶子的全部简单路径都包含相同数目的黑色节点
2、红黑树的自动平衡修正
1.术语
外侧子孙节点:若某节点相对位置与其父节点的相对位置相同,则该节点是外侧子孙节点。
12在18的左侧,而它的父节点18也在25的左侧,所以12是25的外侧子孙节点
内侧子孙节点:当某个节点的相对位置与其父节点的相对位置不一样,则该节点是内侧子孙节点
22在18的右侧,而它的父节点在25的左侧,所以该节点是内侧子孙节点
3、手撕代码