你需要了解一些:红黑树原理

133 阅读3分钟

本文源自Recently祝祝,创自Recently祝祝。转载请标注出处。

本文字数与行数 image.png

1:红黑树是什么?

红黑树一种底层数据结构,具有平衡二叉树特点。存储的数据具有有序性,并且这种有序性带有自身的规则,可以进行快速二分查找,Good!!!并且相邻节点存储到相邻的内存上,又为查找提交提高了效率,Excellent!!!

2.红黑树的原理

红黑树原理,总结七点,可谓必知必会。掌握每一点并且在添加元素的时候每一步都调用,你就会融汇贯通了。

1)添加节点为根节点(添加的元素为红节点,但是根节点需要为黑节点)

	添加后变色 红变黑

2)添加节点的父节点为黑节点

	直接添加

3)添加节点的父节点和叔父节点都为红节点

	【父节点(变黑)和叔父节点(变黑)】
	【祖父节点(变红) -> 自我修正】

4)添加节点的父节点为红节点 叔父节点为黑节点

	添加节点为父节点左节点 父节点为祖父节点的左节点
	【以父节点为参照物 右旋】
	【父节点(变黑)和祖父节点(变红)分别变色】

5)添加节点的父节点为红节点 叔父节点为黑节点

	添加节点为父节点右节点 父节点为祖父节点的右节点
	【以父节点为参照物 左旋】
	【父节点(变黑)和祖父节点(变红)分别变色】

6)添加节点的父节点为红节点 叔父节点为黑节点

父节点为祖父节点的右节点	添加节点为父节点左节点 
	【以子节点为参照物 右旋】
	【以子节点为参照物 左旋】
	【子节点(变黑)和祖父节点(变红)分别变色】

7)添加节点的父节点为红节点 叔父节点为黑节点

	添加节点为父节点右节点 父节点为祖父节点的左节点
	【以子节点为参照物 左旋】
	【以子节点为参照物 右旋】
	【子节点(变黑)和祖父节点(变红)分别变色】

3.使用案例图片说明

依次向红黑树中添加以下元素:1,7,9,20,50,18,17,10,100;

图解:

第一步:添加元素--》1

在这里插入图片描述

第二步:添加元素--》7

在这里插入图片描述

第三步:添加元素--》9

在这里插入图片描述

第四步:添加元素--》20

在这里插入图片描述

第五步:添加元素--》50

在这里插入图片描述

第六步:添加元素--》17,18

在这里插入图片描述

第七步:添加元素--》10

在这里插入图片描述

第八步:添加元素--》100

在这里插入图片描述

4:什么数据结构使用到了红黑树

  1. 红黑树应用广泛,像我们知道的有序映射表、有序集合、优先队列都使用到了红黑树。
  2. 对于红黑树展示就先掌握他的原理,还有在什么地方使用到了红黑树就行。
  3. 以上七条原理很重要。像TreeMap,TreeeSet都使用到了红黑树。
  4. 所谓红黑树就是它有两种颜色的节点,一种红节点,一种黑节点

我为什么要学那么多的知识,因为公司跟这个市场需要