平衡二叉树
平衡二叉树或者是一颗空的二叉排序树,或是具有下列性质的二叉排序树:
- 根节点的左子树和右子树的深度最多相差1
- 根节点的左子树和右子树都是平衡二叉树
平衡因子
平衡因子是该节点的左子树的深度与右子树的深度之差。
最小不平衡子树
在平衡二叉树的构造过程中,以距离插入节点最近的,且平衡因子的绝对值大于1 的节点为根的子树。
红黑树
红黑树是每个节点都带有颜色属性的二叉排序树,颜色或红色或黑色。除了具有二叉排序树的性质以外,还具有以下5个性质:
性质1. 节点是红色或黑色。
性质2. 根节点是黑色。
性质3 每个叶节点(NIL节点,空节点)是黑色的。
性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
红黑树和平衡二叉树的比较
红黑树与平衡二叉树的查找性能相同。但是当插入节点和删除节点从而破坏树的平衡性时,红黑树需要做旋转调整的次数比平衡二叉树所需的旋转调整的次数要少的多,其查找,插入,删除的操作时间复杂度均为O(Log2n)。