查找算法需要掌握的
哈希:(最高效,O(1),)、B+树、二叉搜索树、红黑树:高效的查找算法数据结构
红黑树的性质
1、每个结点不是红色就是黑色
2、不可能有两个连在一起的红结点
3、根结点都是黑色 root
4、每个红色结点的子结点都是黑色。
5、从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
叶子结点都是黑色:出度为0,满足了性质就可以近似的平衡了
左旋: 右旋:
旋转和颜色变换规则:所有插入的点默认为红色
1、变颜色的情况:当前结点的父亲是红色,且他祖父结点的另一个子结点也是红色(叔叔结点)
(1)把父结点设为黑色
(2)把叔叔也设为黑色
(3)把祖父设为红色(爷爷)
(4)把指针定义到祖父结点设为当前要操作的,分析点变换的规则
2、左旋:当前父结点是红色,叔叔结点是黑色,且当前结点是右子树,左旋以父结点作为左旋
3、右旋::当前父结点是红色,叔叔结点是黑色,且当前结点是左子树,右旋
(1)把父结点变为黑色
(2)把祖父结点变为红色
(3)以祖父结点旋转TreeMap