美文网首页
数据结构-红黑树

数据结构-红黑树

作者: 谜邪 | 来源:发表于2018-08-24 17:17 被阅读0次

首先了解下二叉树特性:

    1.左子树上所有的节点的值均小于或等于它的根节点的值

    2.右子树上所有节点的值均大于或等于它的根节点的值

    3.左右子树也分别为二叉树排序

二叉树优缺点:查找所需要的最大次数等同于二叉查找树丶高度.在插入结点的时候也是利用类似的方法,通过一层一层比较大小,找到新节点适合插入位置.缺点就是后来插入的很容易变成线性结构,查找性能大打折扣.

红黑树特性:

    1.红黑树是一种自平衡的二叉查找树.

    2.节点是红色或者黑色

    3.根节点是黑色

    4.每个叶子节点都是黑色的空节点(NIL节点)

    5.每个红色节点的两字子节点都是黑色(从每个叶子到根的所有路径上不能有两个连续的红色节点)

    6.从任一节点到其每个叶子所有路径都包含相同数目的黑色节点

红黑树从根到叶子的最长路径不会超过最短路径的2倍,当插入或删除节点的时候,红黑树的规则很有可能被破坏,我们需要调整,来维持规则.

调整的两种方法:

    变色:为了重新符合红黑树的规则,尝试把红色节点变为黑色,或者把黑色节点变为红色

    旋转有两种情况:

    左旋转:逆时针旋转红黑树的两个节点,使得父节点被自己的右孩子取代,而自己的成为自己的做孩子.如下图

    右旋转:顺时针旋转红黑树的两个节点,使得父节点被自己的左孩子取代,而自己成为自己的右孩子.

红黑树实际应用:JDK的集合类TreeMap和TreeSet底层就是红黑树实现的,在java8中,HashMap也用到红黑树.

相关文章

  • 数据结构红黑树添加、修改原理分析

    源码分析大纲 数据结构解析 红黑树试下原理刨析 数据结构解析 1.红黑树 1.1 红黑树概念 红黑树(Red Bl...

  • 数据结构 - 红黑树

    更多数据结构内容,请参考:数据结构 - 概要 简介 红黑树介绍请参考: 漫画:什么是红黑树? 面试旧敌之红黑树 红...

  • hashmap源码分析

    HashMap的数据结构 从上图中可以很清楚的看到,HashMap的数据结构是数组+链表+红黑树(红黑树since...

  • Red-Black Tree

    红黑树 前段时间看到STL map使用的数据结构是红黑树,研究了一下。 红黑树的由来 红黑树是二叉查找树的升级版本...

  • JDK1.8 之 集合框架 TreeMap TreeSet

    了解 Tree 之前我们必须了解 红黑树 因为Tree 的数据结构就是红黑树 红黑树的特性(1)每个节点或者是黑色...

  • 数据结构08-红黑树

    数据结构08-红黑树 一、红黑树的介绍 红黑树(RBT)是每个节点都带有颜色属性的自平衡二叉查找树,颜色或红色或黑...

  • 数据结构-红黑树学习笔记(转)

    rbt(红黑树) 图解红黑树:https://www.jianshu.com/p/0eaea4cc5619数据结构...

  • 2019-7-19

    部分常用容器类 HashMap 底层数据结构,数组 + 链表/红黑树链表类 - Node - 单链表 红黑树类 -...

  • java8中hashmap源码分析,put()方法详细分析

    一.源码大纲 1.了解红黑树原理(可翻看上一个文章,[红黑树原理分析](数据结构红黑树添加、修改原理分析 - 简书...

  • HashMap数据结构

    hashmap的数据结构由数组+链表+红黑树组成。

网友评论

      本文标题:数据结构-红黑树

      本文链接:https://www.haomeiwen.com/subject/taabiftx.html