zoukankan      html  css  js  c++  java
  • 红黑树-RBT(一、红黑树定义以及简介)

    一、红黑树

      1、介绍:红黑树是一种二叉查找树,但在每个节点上增加一个存储位表示节点的颜色,可以是red或black。通过对任何一条从根到叶子的路径上的各个节点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。

      2、定义:它或者是一颗空树,或者是具有一下性质的二叉查找树

        1):每个节点或是红的,或是黑的。

        2):根节点是黑的。

        3):每个叶节点(NIL)是黑的。(所有NULL结点称为叶子节点,且认为颜色为黑

        4):如果一个节点是红的,则他的两个子节点是黑的。

        5):对每个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑节点。

            

      3、结构:树中的每个节点上包含五个域:color、key、left、right、p。如果其节点没有一个子节点或者父节点,则该节点相应的指针(p)域包含值NIL。我们把这些NIL视为指向二叉查找树的外节点,而把带关键字的节点是为树的内节点。

      4、高度:一颗有n个内节点的红黑树的高至多为2lg(n+1)。

      5、应用:Java集合中的TreeSetTreeMap,C++ STL中的set、map,以及Linux虚拟内存的管理,都是通过红黑树去实现的。 

  • 相关阅读:
    Spinlock
    Leetcode: Summary Ranges
    Leetcode: Search a 2D Matrix
    Leetcode: Rotate Image
    Leetcode: Length of Last Word in python
    BBC-unit7 session1
    BBC-unit6 session5
    BBC-unit6 session4
    BBC英语-unit6 session3
    BBC英语-unit6 session2
  • 原文地址:https://www.cnblogs.com/weiliuyby/p/8434853.html
Copyright © 2011-2022 走看看