红黑树

R-B Tree,全程Red-Black Tree,中文译为红黑树。它是一种特殊的二叉查找树,它的每个节点上都有存储位表示节点的颜色,可以是红或者黑。

红黑树应用比较广泛,主要是用来存储有序的数据,它的时间复杂度为O(lgn),效率那是杠杠的高呀。

例如,Java集合中的TreeSet和TreeMap以及Linux虚拟内存的管理,就是通过红黑树来实现的。

红黑树的特点:

(1)每个节点为红或黑两种

(2)根节点为黑色

(3)每个叶子节点是黑色(注:这里的叶子节点,是指为空(NIL或NULL)的叶子节点!)

(4)如果一个节点是红色的,则它的子节点必须为黑色

(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点(该特性确保没有一条路径会比其他路径长出俩倍,因而,红黑树是相对比较接近平衡的二叉树。)

示意图如下:


红黑树基本操作:

(1)添加:第一步,将红黑树当做一棵二叉查找树,将节点插入;第二步,将节点着色为红色;第三步,通过旋转和重新着色等方法来修正该树,使之重新成为一棵红黑树

旋转示意图:

(1)左旋转:


(2)右旋转:


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找...
    张晨辉Allen阅读 9,331评论 5 30
  • 1、红黑树介绍 红黑树又称R-B Tree,全称是Red-Black Tree,它是一种特殊的二叉查找树,红黑树的...
    文哥的学习日记阅读 9,905评论 1 35
  • 0.目录 1.算法导论的红黑树本质上是2-3-4树 2.红黑树的结构和性质 3.红黑树的插入 4.红黑树的删除 5...
    王侦阅读 2,525评论 1 2
  • 转自https://www.jianshu.com/p/4cd37000f4e3 1.定义 红黑树是特殊的二叉查找...
    dreamsfuture阅读 738评论 0 4
  • 【知-学习】 1.朗读2分钟。 2.《大学》诵读0遍。 【经典名句分享】 任何成功都不是一蹴而就的。精彩一瞬的背后...
    玉_莲子阅读 139评论 0 1