红黑树原理

红黑树是一个平衡二叉搜索树,但不是一个完美的二叉树。

红黑树需要满足5个性质:

1、每个节点或红或黑

2、根节点是黑色的

3、空叶子节点是黑色的

4、如果一个节点是红色的,那么它的子节点必须是黑色的

5、从任意一个节点到叶子节点,经过的黑节点数相同

 

红黑树首先是一颗查找树,所以左子树节点小于根节点,右子树节点大于根节点。

红黑树有两个重要的操作:左旋、右旋。

左旋、右旋来实现左小右大,然后通过变换节点颜色来保持5条特性的满足。

 

左旋:

以父节点为旋转节点,向左旋转,使其成为一个新的左子节点,然后右子节点向左旋转,使其成为新的父节点。

再将新的父节点,也就是原右子节点的左子树,挂载到新的左子节点上,使其成为右子树。

 

右旋:

以父节点为旋转节点,向右旋转,使其成为一个新的右子节点,然后左子节点向右旋转,使其成为新的父节点。

再将新的父节点,也就是原左子节点的右子树,挂载到新的右子节点上,使其成为左子树。

 

这里参考了大神的博客,写的很详细,附上链接:https://www.cnblogs.com/yinbiao/p/10732600.html

 

posted @ 2021-02-08 21:58  每天努力一小步  阅读(314)  评论(0)    收藏  举报