红黑树


平衡树是为了解决二叉查找树退化为链表的情况,而红黑树是为了解决平衡树在插入、删除等操作需要频繁旋转调整的情况

 

使用颜色来标识结点的高度

STL中的关联式容器(set、map、mulit)默认的底层实现都是红黑树


着色法则确保没有一条路径会比其它路径长出两倍


任意一个节点到到NULL(树尾端)的任何路径,所含之黑色节点数必须相同。

∴新增节点必须为红色


两两节点不能都是红色

∴新增节点之父节点必须为黑色

 

最后:未能符合上述条件时,就必须调整颜色并旋转树形

 

1、黑父,直插


2、红父

2.1 红叔 —> 直接变成 黑父和黑叔,
祖变红,怕祖的父为红,再向上迭代

2.1 黑叔 —> 4种旋转

posted @ 2020-11-05 19:41  赫拉克利特  阅读(113)  评论(0编辑  收藏  举报