首页 > 其他分享 >红黑树

红黑树

时间:2023-04-06 09:25:09浏览次数:27  
标签:AVL 插入 二叉树 红黑树 logN 节点

一、红黑树简介

自平衡二叉查找树

O(logN)时间内完成查找、增加、删除等操作

二、为什么需要红黑树

二叉平衡树插入数据为随机的时,那么它就是接近平衡的二叉树,平衡的二叉树操作效率较高O(logN)。如果插入有序,则节点集中于树的一侧,变成链表,操作效率降低,时间复杂度变为O(N),二叉树的时间复杂度介于O(N)和O(logN)之间。

红黑树是接近平衡的二叉树,没有AVL平衡二叉树的严格平衡因子,而是通过红黑节点的5条性质来维持。

三、红黑树特性

每个节点存储颜色:红/黑

保证最长路径是最短路径的两倍:最长路径:红黑交替,最短路径全黑,从根节点到叶子节点的黑色节点个数相同。

5条特性:

1、节点是红色或黑色

2、根是黑色

3、叶子节点都是黑色,这里的叶子节点指空节点NULL

4、红色节点子节点、父节点是黑色,不存在两个连续红色节点

5、任意节点到叶子节点的所有路径包含相同数目的黑色节点

判断是否是红黑树:

不是,实际的叶节点是空NULL,所有路径经过黑节点数量不一致。

四、红黑树效率

查找、插入、删除的时间复杂度都是O(logN)

查找:与普通相对平衡二叉树效率一致。

插入有序:插入数据有序效率比二叉搜索树高

插入、删除:每次操作需平均旋转一次、变换颜色,效率略低,但仍为O(logN)

与AVL树比较:时间复杂度略低于AVL,但计算机CPU性能高,可忽略;插入更便于控制;整体性能略优于AVL树(旋转小)

五、红黑树等价变换

红黑树等价于一个四阶B树(一个节点最多访问三个数据)

等价过程红色节点移到他们的父节点的同一高度上:

简化为:

等价变化结论:

1、红黑树,4阶B树(2-3-4树)具有等价性

2、黑色节点和红色节点融合在一起,形成一个B树节点

3、红黑树黑色节点个数等价于B树节点个数

4、B树节点,永远黑色放中间,红色放两边

分类:

六、红黑树操作

1、旋转操作

分为左旋、右旋

右旋1:

左旋2:

2、插入操作

3、删除操作

七、AVL树vs红黑树

参考:http://t.csdn.cn/G0xE7

标签:AVL,插入,二叉树,红黑树,logN,节点
From: https://www.cnblogs.com/fei1013/p/17291623.html

相关文章