zoukankan      html  css  js  c++  java
  • 红黑树

    待更。。。。

    目录

    一、什么是红黑树

    红-黑树是这样的树:

            1.每个节点不是红色就是黑色的;

            2.根节点总是黑色的;

       3.每个叶节点(NIL)都是黑色;

            4.如果节点是红色的,则它的子节点必须是黑色的;

            4.从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑度)。

    红黑树是一棵平衡二叉树,可以理解为平衡二叉树的特例。平衡二叉树是二叉树排序树(又叫二叉查找树)“平衡”得到的。所以二叉平衡树是二叉搜索树,所以红黑树也是二叉搜索树;

    二、红黑树的基本操作

    1、旋转

    2、插入

    3、删除

    三、红黑树的应用

    • 广泛用于C++的STL中,map和set都是用红黑树实现的.
    • java中TreeMap的实现.
    • 著名的linux进程调度Completely Fair Scheduler,用红黑树管理进程控制块,进程的虚拟内存区域都存储在一颗红黑树上,每个虚拟地址区域都对应红黑树的一个节点,左指针指向相邻的地址虚拟存储区域,右指针指向相邻的高地址虚拟地址空间.
    • IO多路复用epoll的实现采用红黑树组织管理sockfd,以支持快速的增删改查.
    • ngnix中,用红黑树管理timer,因为红黑树是有序的,可以很快的得到距离当前最小的定时器

    推荐参考:https://blog.csdn.net/eson_15/article/details/51144079

  • 相关阅读:
    网页HTML到8.20前
    数据库SQLServer
    构建之法读后感
    VS2013 生成安装文件
    工大助手(自动化部署)
    工大助手(用户名、密码错误提示)
    工大助手(验证码错误提示)
    工大助手(加权成绩计算)
    Wireshark插件编写
    微软认知服务——人脸识别
  • 原文地址:https://www.cnblogs.com/jiaoqiang/p/8870359.html
Copyright © 2011-2022 走看看