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

    从开源项目中,总结三个用到红黑树的地方,并分析如何实现。

    案例一:服务器高并发IO的keepalive方案,满足以下几个需求

    1.每个IO都是自己的时间戳

    2.每个IO收到自己的beat后,重置自己的定时器

    3.若IO定时器没有收到beat,则执行IO的回调函数,并重置定时器

    4.若再次没有收到beat,销毁IO,注销定时器

    案例二:设计一个线程或者进程的运行体R与运行体调度器S的结构体

    1.运行体R:包含运行状态(新建,准备,挂起,IO等待读,IO等待写,睡眠,延时,退出),运行体回调函数,回调参数

    2.调度器S:包含栈指针,栈大小,当前运行体

    3.调度器S:包含执行集合(就绪,延时,睡眠,等待)

    平衡二叉树

    强平衡:左右子树的高度不超过1

    红黑树

    红黑树是如何做到平衡的

    概念

    左右旋

    插入   三种情况

    删除   四种情况

    性质:

    1.每个节点是红的或黑的

    2.根节点是黑的

    3.每个叶子节点是黑的

    4.如果一个节点是红的,则它的两个儿子是黑的

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

  • 相关阅读:
    再见 2020, 愿“山河无恙,人间皆安”| 年终总结
    Oracle
    Linux安装
    线程池
    AutoJS
    VSCode
    c++ 解析yaml文件
    管道: 哪些命令能直接从管道的输出中读取?
    K8S 集群部署
    Android项目实战(六十一):pdf文件用图片方式预览
  • 原文地址:https://www.cnblogs.com/Ryans-World/p/12301253.html
Copyright © 2011-2022 走看看