改变颜色和旋转 变颜色的情况:当前节点父亲是红色,且它的祖父亲节点的另一个子节点也是红色(叔叔节点):
1.将父亲节点设置为黑色
2.将叔叔节点设为黑色
3.将祖父也就是父亲的父亲设为红色
4.把指针定义到祖父节点设为当前操作
左旋转:
左旋:当父亲节点为红色情况,叔叔的节点为黑色的情况,且当前的节点是右子树,左旋转以父节点作为左旋;
右旋转:当父亲节点为红色情况,叔叔的节点为黑色的情况,且当前的节点是左子树,右旋转以
1.将父节点变为黑色
2.将祖父节点变为红色(爷爷)
3.以祖父节点开始旋转
数据结构: Jdk1.7使用数组+链表 Jdk1.8使用数组+链表+红黑树(解决链表过长查询慢的问题) (当链表深度达到8的时候,就会采用红黑树存放,这时候时间复杂度为O (n ))变为O(log n) 扩容线程安全问题: Jdk1.7采用头插法,在数组扩容的时候容易导致死循环问题、Jdk1.8采用尾插入法解决了数组扩容容器导致死循环问题
来源:CSDN
作者:君子志邦
链接:https://blog.csdn.net/u011488009/article/details/104358025