RB树首先是个二叉搜索树,除此之外还要满足以下4个条件:
1.每个结点不是红色就是黑色(很好,很符合计算机的二进制精神)
2.根节点为黑色(在一种RB树变种中根节点是红色)
3.如果结点是红色,则其子子结点必须是黑的;
4.任意结点至NULL(树尾端)的任何路径,所包含的黑色结点数目必须相同
根据规则4,新增的结点必为红(初始状态),但是这样可能就会违反规则3
根据规则3,新增结点的父亲必须为黑色,,所以当新增结点未能满足RB树的结构特点时候,必须调整颜色并旋转树形状
RB树首先是个二叉搜索树,除此之外还要满足以下4个条件:
1.每个结点不是红色就是黑色(很好,很符合计算机的二进制精神)
2.根节点为黑色(在一种RB树变种中根节点是红色)
3.如果结点是红色,则其子子结点必须是黑的;
4.任意结点至NULL(树尾端)的任何路径,所包含的黑色结点数目必须相同
根据规则4,新增的结点必为红(初始状态),但是这样可能就会违反规则3
根据规则3,新增结点的父亲必须为黑色,,所以当新增结点未能满足RB树的结构特点时候,必须调整颜色并旋转树形状