红黑树(Red Black Tree)
0.红黑树的特点
是一种查找和修改删除都比较高效的二叉树
性质1.节点是红色或黑色。
性质2.根节点是黑色。
性质3.每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质4.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
1.这些约束强制了红黑树的关键性质:
从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。
因为操作比如插入、删除和查找某个值的最坏情况时间都要求与树的高度成比例,这个在高度
上的理论上限允许红黑树在最坏情况下都是高效的,而不同于普通的二叉查找树。
2.左旋和右旋
左旋:将当前节点的右子节点旋转为当前节点的父节点。
右旋:将当前节点的左子节点旋转为当前节点的父节点。