红黑树(简易版)

一、一句话

红黑树 ≈ 近似平衡的二叉查找树,保证查找 O(log n)


二、5 条性质(背前 4 条即可)

  1. 节点是 红 / 黑
  2. 根是
  3. 叶子(NIL)是
  4. 红节点的孩子必须是黑(不能连续红)
  5. 任意节点到叶子的 黑高相同(保证平衡)

三、vs AVL(面试必问)

对比 红黑树 AVL
平衡 弱平衡(黑高一致) 严格平衡
插入/删除 更快(旋转少)
查询 稍慢 更快
应用 TreeMap、HashMap 早期数据库

插入删除多 → 红黑树;查询多 → AVL


四、旋转(理解就行)

  • 左旋:右子变父
  • 右旋:左子变父

五、插入(只记结论)

  1. 新节点默认 红色
  2. 父节点是黑 → 结束
  3. 父节点是红 → 看叔叔
    • 叔叔红 → 变色 + 上推
    • 叔叔黑 → 旋转 + 变色

六、时间复杂度

操作 时间
查找 O(log n)
插入 O(log n)
删除 O(log n)

七、工程应用

  • Java TreeMap / TreeSet
  • C++ std::map
  • Linux 调度器

八、要不要手写?

面试 刷题 工作
❌ 不考 ❌ 不写 ❌ 不用写

只考理论,不考手写。


相关推荐
装不满的克莱因瓶15 分钟前
掌握生成对抗网络(GAN)的优化目标与评估指标——从博弈函数到生成质量衡量体系
人工智能·python·深度学习·算法·机器学习
技术小黑18 分钟前
CNN算法实战系列06 | InceptionV1实现猴痘病识别
深度学习·算法·cnn·inceptionv1
云淡风轻~窗明几净36 分钟前
角谷猜想的任意算法测试
数据结构·人工智能·算法
happygrilclh1 小时前
赚外快了:等离子表面处理机电源算法需求说明
算法
ji198594431 小时前
MATLAB 求散点曲线斜率
开发语言·算法·matlab
kaikaile19951 小时前
MATLAB 实现:Koch & Zhao 图像水印算法(DCT域)
开发语言·算法·matlab
QiLinkOS1 小时前
QiLink开源生态的三维重构:基于时间、空间与社会价值的底层规则创新白皮书
大数据·c++·人工智能·科技·算法·gitee·开源
牛肉在哪里1 小时前
ros2 从零开始28 监听广播C++
开发语言·c++·算法·机器人
乐观勇敢坚强的老彭1 小时前
GESP一级核心算法:循环与条件判断的结合
java·数据结构·算法
noipp1 小时前
推荐题目:洛谷 P1737 [NOI2016] 旷野大计算
linux·数据结构·算法