二叉树演变

链表->二叉树->二叉搜索树->平衡二叉树->红黑树

二叉搜索树

(1)每个节点有一个唯一的key值,且所有结点互不相同;

(2)左子树所有key值小于根的key值;

(3)右子树所有key值大于根的key值;

(4)左右子树都是二叉搜索树。

平衡二叉树(AVL树)

平衡二叉树也叫自平衡二叉搜索树(Self-Balancing Binary Search Tree),所以其本质也是一颗二叉搜索树,不过为了限制左右子树的高度差,避免出现倾斜树等偏向于线性结构演化的情况,所以对二叉搜索树中每个节点的左右子树作了限制,左右子树的高度差称之为平衡因子,树中每个节点的平衡因子绝对值不大于1 ,此时二叉搜索树称之为平衡二叉树。

自平衡是指,在对平衡二叉树执行插入或删除节点操作后,可能会导致树中某个节点的平衡因子绝对值超过1,即平衡二叉树变得“不平衡”,为了恢复该节点左右子树的平衡,此时需要对节点执行旋转操作。

红黑树

红黑树是一种含有红黑结点并能自平衡的二叉查找树。它必须满足下面性质:

  • 性质1:每个节点要么是黑色,要么是红色。
  • 性质2:根节点是黑色。
  • 性质3:每个叶子节点(NIL)是黑色。
  • 性质4:不可能连在一起的红色节点
  • 性质5:每个红色结点的两个子结点一定都是黑色。
  • 性质6:任意一结点到每个叶子结点的路径都包含数量相同的黑结点。

 

©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页