红黑树
作者:互联网
红黑树特点
- 每个节点不是黑色就是红色
- 根节点是黑色
- 每个叶子节点是黑色,但是Java中使用null代表空节点,所以遍历不到黑色的叶子节点
- 红色节点的子节点必须是黑色节点,不可以是红色节点
- 但是黑色节点的子节点可以是黑色节点
- 从根节点到所有叶节点之间的黑色节点个数是一致的
- 所有新增的节点都是红色节点
插入数据处理
- 如果插入的是根节点,因为根节点必须是黑色节点,而插入的是红色节点,进行一次变色操作
- 如果插入节点是左节点,且插入节点的父节点是红色节点,祖父节点的另一个子节点也为红色节点,对祖父节点及祖父节点下的子节点进行变色,并进行右旋操作,即祖父节点的父节点直接连到父节点,祖父节点变成父节点的子节点
- 如果插入节点是左节点,且插入节点的父节点是红色节点,但是祖父节点的另一个子节点是黑色节点,对祖父节点及父节点进行变色,并进行右旋操作
- 如果插入节点是右节点,且插入节点的父节点是红色节点,但是祖父节点的另一个子节点是黑色节点,先进行左旋操作
标签:黑色,祖父,插入,红色,红黑树,节点 来源: https://www.cnblogs.com/qixioa/p/13703434.html