什么是红黑树
红黑树具有以下特征:
- 结点为黑色或红色
- 根结点和叶结点为黑色(叶结点是NULL结点,虚拟出来的,如果结点A的左孩子B为空,则B就是一个叶结点)
- 不能出现连续的红结点
- 任一结点到其叶子结点的路径中有相同的黑高(这个路径不包括源结点,黑高即黑色结点的数量)
由红黑树的特征可以推出如下结论:
- 红黑树的任一结点的平衡因子不超过子树的高度,即abs(HL - HR) <= min(HL,HR)
证明:当子树最矮时,路径中必全为黑结点;当子树最高时,路径必是黑结点与红结点交替。由于特征4,两个子树的黑高相同,故得证
为什么要引入红黑树
AVL树与红黑树相比,具有更严格的平衡因子,树的结构也更完美。所以AVL树的查询更快,在插入和删除操作的过程中也需要进行更多的调整(左旋或右旋)。
因此,在大量增删的情况下,红黑树较AVL树更优;在大量查询的情况下,还是选择AVL树