红黑树
前言:
二叉查找树(BST)利用二分查找可以很方便的查找数据,但是在插入数据的时候可能会产生线性结构(如在根结值为9时,依次插入8,7,6,5,就形成了线性结构)。
为了解决二叉查找树插入结点导致的不平衡,就有了自平衡二叉查找树(AVL),但是每个节点左右子树高度差最多为1,要求实在太严格,导致每次插入几乎都会破坏平衡,需要
左旋或者右旋来调整,影响性能。红黑树应运而生。红黑树是一种自平衡二叉查找树。
特性:
1.结点非黑即红
2.根节点是黑色,插入的结点为红色
3.每个叶子节点都是黑色的空结点(NIL结点)
4.每个红色结点的子节点都是黑色(不能有两个连续的红节点)
5.从任意结点到其每个叶子节点的所有路径都包含相同数目的黑色结点
**这些特性保证了红黑树的平衡。红黑树从根到叶子的最长路径不会超过最短路径的两倍**
调整:
变色和旋转

浙公网安备 33010602011771号