对上一篇做补充:
红黑树的变换规则:
旋转和颜色变换规则:所有插入的点默认为红色
1.变颜色的情况:当前结点的父亲是红色,且它的祖父结点的另一个子结点也是红色。(叔叔结点)
(1)把父节点设为黑色
(2)把叔叔节点也设为黑色
(3)把祖父节点也就是父亲的父亲设为红色(爷爷)
(4)把指针定义到祖父节点设为当前要操作的。(爷爷)分析的点变换的规则
2.左旋:当前父节点是红色,叔叔是黑色的时候,且当前的节点是右子树。左旋以父节点作为左旋。
3.右旋:当前父节点是红色,叔叔是黑色的时候,且当前的节点是左子树。右旋
(1)把父节点变为黑色
(2)把祖父节点变为红色(爷爷)
(3)以祖父节点旋转(爷爷)
红黑树的数据存储应用:
红黑树可用于hashmap:因为数据存放在内存,速度快
红黑树不用在MySQL:读取磁盘的次数过多(磁盘IO),读取浪费(一页只读一个数据,才用连续空间解决(B树,B+树))
数据有两种存储方式:内存(适用于小数据),硬盘(大数据)mysql
磁盘运转的方式:速度 旋转。页码的概念,一页存储4k数据,也就是一次磁盘IO,现在可存储16k