当前位置: 首页 > news >正文

1 2 3 4 5顺序插入,形成一个红黑树

红黑树的特性与优点

红黑树是一种自平衡的二叉搜索树,通过额外的颜色标记和平衡性约束,确保树的高度始终保持在 O(log n)。其核心特性如下:

  1. 每个节点要么是红色,要么是黑色
  2. 根节点和叶子节点(NIL节点)是黑色
  3. 红色节点的子节点必须是黑色(不能有两个连续的红色节点)。
  4. 从任一节点到其每个叶子的路径都包含相同数目的黑色节点(黑高平衡)。

这些特性使得红黑树在插入、删除时通过颜色调整和旋转操作维持平衡,避免了BST的退化问题。

顺序插入12345

       2(B)/   \1(B)  4(B)/ \3(R)5(R)

步骤解释:

  1. 插入1:根节点,设为黑色。

    • 1(B)
  2. 插入2:作为1的右子节点,设为红色。无冲突。

      1(B)\2(R)
    
  3. 插入3:作为2的右子节点,设为红色。此时父节点2(红)与子节点3(红)冲突。

    • 调整:左旋祖父节点1,将2提升为根并设为黑色,1和3设为红色。
        2(B)/   \1(R)  3(R)
    
  4. 插入4:作为3的右子节点,设为红色。父节点3(红)与子节点4(红)冲突。

    • 调整:颜色翻转(父节点3和叔叔节点1变黑,祖父节点2变红),最后根保持黑色。
        2(B)/   \1(B)  3(B)\4(R)
    
  5. 插入5:作为4的右子节点,设为红色。父节点4(红)与子节点5(红)冲突。

    • 调整:左旋祖父节点3,将4设为黑色,3设为红色。
        2(B)/   \1(B)  4(B)/ \3(R)5(R)
    

验证规则:

  • 根为黑色:满足。
  • 红色节点无红色子节点:3®和5®的子节点均为NIL(黑)。
  • 所有路径黑色节点数相同:每条路径均为2个黑色节点(例如:2→1→NIL2→4→3→NIL)。

该结构严格遵循红黑树的五条性质,是一棵有效的红黑树。

相关文章:

  • 区块链技术中的Java SE实战:从企业级应用到5大核心问题解析
  • R 语言科研绘图 --- 桑基图-汇总
  • Kubernetes生产实战(十四):Secret高级使用模式与安全实践指南
  • AI Agent(8):安全与伦理考量
  • PyTorch API 4 - 分布式通信、分布式张量
  • SpringCloud之Eureka基础认识-服务注册中心
  • 一、数据仓库基石:核心理论、分层艺术与 ETL/ELT 之辨
  • 第十七次博客打卡
  • MySQL 从入门到精通(六):视图全面详解 —— 虚拟表的灵活运用
  • vue开发用户注册功能
  • JVM 数据区域
  • 微服务6大拆分原则
  • Linux 下 Java 部署环境搭建与项目部署详细步骤
  • PyTorch 线性回归模型构建与神经网络基础要点解析
  • 【金仓数据库征文】学校AI数字人:从Sql Server到KingbaseES的数据库转型之路
  • 十六、统一建模语言 UML
  • cdn 是什么?
  • AIGC时代大模型幻觉问题深度治理:技术体系、工程实践与未来演进
  • LSP里氏替换原则
  • 全息美AISEO引领未来智能营销新趋势
  • “拼好假”的年轻人,今年有哪些旅游新玩法?
  • 中非民间对话在赞比亚举行
  • 三星“七天机”质保期内屏幕漏液被要求自费维修,商家:系人为损坏
  • “浦东时刻”在京展出:沉浸式体验海派风情
  • 巴基斯坦称约50名印度士兵在克什米尔实控线丧生
  • 商务部:中方愿同各国一道加强合作,促进跨境电商健康可持续发展