红黑树

Posted hi-zhixian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红黑树相关的知识,希望对你有一定的参考价值。

  a. 红黑树本质上是一棵自平衡二叉查找树
  b. 二叉查找树的特点:
     i. 左子树都小于根
     ii. 右子树都大于根
  c. 红黑树的特点:
     i. 节点非红即黑
     ii. 根节点是黑节点
     iii. 红节点的子节点一定是黑节点,但是黑节点的子节点不一定是红节点
     iv. 最底层的叶子节点一定是黑色的空节点
     v. 从根节点到任意一个叶子节点所经过的路径中的黑色节点个数一致的,即黑节点高度是一致
     vi. 新添的节点必须是红节点
  d. 红黑树的修正 - 前提一定是父子节点都为红 - 修正过程是一个链式过程:
     i. 叔父节点为红,那么将父节点以及叔父节点涂黑,将祖父节点涂红
     ii. 叔父节点为黑,并且当前节点为右子叶,那么以当前节点为轴进行左旋
   技术图片
     iii. 叔父节点为黑,并且当前节点为左子叶,那么以父节点为轴进行右旋
   技术图片
   iv. 修正案例:
   技术图片
红黑树的查询时间复杂度是O(logn)

以上是关于红黑树的主要内容,如果未能解决你的问题,请参考以下文章

数据结构~基础2~树《二叉树二叉搜索树AVL树B树红黑树》的设计~红黑树

二叉树红黑树以及Golang实现红黑树

二叉树红黑树HashB+树

红黑树平衡二叉查找树

红黑树平衡二叉查找树

二叉排序树红黑树AVL树散列表