美文网首页
红黑树的旋转

红黑树的旋转

作者: 在error边缘疯狂试探 | 来源:发表于2021-01-12 15:18 被阅读0次

转换规则

  • 红黑树默认插入的是红子树、也不允许有任何两个相连的节点都为红色。

  • 1、颜色转换情况:
    如果当前节点的父节点是红色,且父节点的兄弟节点也是红色,那么需要进行颜色转变:

    • 父节点变为黑色、父节点的兄弟节点也变为黑色,然后父节点的父节点表位红色
  • 2、左旋的情况:(自己当然是红色)
    如果父节点为红色,父节点的兄弟节点是黑色,且自己是父节点的 右子树 时需要进行左旋:

    • 以父节点作为旋转节点,将父节点转到自己的左子树下,自己就转到父节点位置。
  • 3、右旋的情况:(稍微复杂一点)
    如果父节点为红色,父节点的兄弟节点是黑色,且自己是父节点的 左子树 时需要进行右旋:

    • 1、先要进行变色:父节点变为黑色、再把父节点的父节点变为红色
    • 2、以父节点的父节点作为旋转节点,将父节点的父节点变为父节点右子树,父节点代替父节点的父节点的位置。

就这样一直变颜色、旋转,直到该数符合红黑树即可,并不难。

相关文章

  • Collection

    图解集合 8 : 红黑树的移除节点操作 图解集合7:红黑树概念、红黑树的插入及旋转操作详细解读 图解集合 6 : ...

  • 红黑树的旋转

    转换规则 红黑树默认插入的是红子树、也不允许有任何两个相连的节点都为红色。 1、颜色转换情况:如果当前节点的父节点...

  • 数据结构

    红黑树 什么时候需要旋转 颜色翻转?

  • 从二叉树到红黑树

    一说到红黑树,有人就特别恐惧,立马想到的是红黑树的性质啊,插入方式啊,复杂的旋转啊。网上一搜索红黑树,也是这些...

  • 红黑树

    本文的主要内容:1、红黑树的基本概念以及最重要的5点规则。2、红黑树的左旋转、右旋转、重新着色的原理与Java实现...

  • 红黑树(RBT)

    红黑树的性质 旋转 插入 删除 #1. 红黑树的性质 红黑树是一棵二叉搜索树,它在每个结点上增加一个存储位来表示结...

  • 数据结构

    1 红黑树 红黑树与AVL的比较: AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红...

  • 重点汇总-python-gitbook-重要点学习-4-数据结构

    数据结构 - 红黑树 红黑树与AVL的比较: AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转...

  • 红黑树旋转规则总结

    红黑树的定义 任何一个节点非红即黑; 树的根为黑色; 叶子节点为黑色(注意:红黑树的所有叶子节点都指的是Nil节点...

  • 数据结构—树—红黑树

    红黑树概述 红黑树的插入 红黑树的删除

网友评论

      本文标题:红黑树的旋转

      本文链接:https://www.haomeiwen.com/subject/ouxeaktx.html