红黑树算法

  1. 树介绍
  2. 二叉树
  3. 平衡二叉树
  4. 红黑树算法

树介绍

树的特点:

  • (1) 每个节点有零个或多个子节点

  • (2) 没有父节点的为根节点

  • (3) 每一个非根节点都有且只有一个父节点

  • (4) 除了根节点外, 每个子节点可以分为多个不想交的子树

  • 结点 : 指树的一个元素

  • 结点的度: 指结点拥有的子树的个数 ,二叉树的度不大于2

  • 叶子: 度为0 的节点

  • 高度:叶子节点的高度为1 根节点高度最高

  • 父节点: 若一个节点含有子节点,则它可成为其子节点的父节点

  • 子节点: 父节点的下一层节点

  • 层: 从根节点开始,根节点为一层子节点为二层,依次类推。

  • 兄弟节点: 用于共同父节点的为兄弟节点

二叉树

一种特殊的树结构,只包含两个节点。他有五种状态,空集,根节点, 只包含左子树,只包含右子树,同时包含左右子树。

平衡二叉树

平衡因子: 该节点的左子树高度减去该节点的右子树高度,大于等于2既表示为不平衡状态。

AVLTree_LL


AVLTree_LR


AVLTree_RR


AVLTree_RL


AVLTree_eg1


AVLTree_eg2


AVLTree_eg3


AVLTree_eg4

红黑树算法

   红黑树既自平衡二叉树,不会出现左子树和右子树过长的情况。红黑树适用于存储有序的数据结构,可以在O(logn)时间内做查找,插入和删除红黑树的特性有:

  • 节点为红色或黑色
  • 根节点是黑色
  • 每个红色节点的两个子节点必须是黑色(每个叶子节点到根节点不能出现两个相邻的红色)
  • 每个叶子节点都是黑色的空节点
  • 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点

R-B-Tree1


R-B-Tree2


R-B-Tree3


R-B-Tree4


R-B-Tree5_1
R-B-Tree5_2

总结:变换主要由情况三四五进行循环变换,直至符合红黑树性质。