美文网首页
红黑树-旋转(未完成)

红黑树-旋转(未完成)

作者: KeDaiBiaO1 | 来源:发表于2017-10-04 15:42 被阅读0次
///定义一个全局的空叶子节点  空的
    //root节点
    RbNode root;
    RbNode nil = new RbNode(); 
    public class RbNode {
        //颜色
        public int color;
        //值
        public int key;
        
        //键的链接  需要连接父节点  还有左右节点
        public RbNode  left;
        public RbNode  right;
        //父节点
        public RbNode  p;
    }
    //对x左旋  nil是空的node   
    /**
     *          y
     *         / \  
     *        x   γ
     *       / \
     *      α   β 
     *          
     *      右旋  |↑ 左旋
     *            ↓|
     *  
     *          x
     *         / \
     *        α   y
     *           / \
     *          β   γ           
     * @param tree
     * @param x  对x左旋    y的父节点是x   
     * 
     * y是父节点的右孩子  当前节点是y 然后节点上移到x然后对x操作左旋
     */
    public void left_Rotate(RbNode tree, RbNode x){
        RbNode y = x.right;
        x.right = y.left;//x与y节点之间的键断开  1   
        if(y.left != nil){
            y.left.p = x;//断开y与y左子树    链接x与y左子树(也就是把x的右子树连接y的左子树)2
        }
        y.p = x.p;//链接y到原本x的父节点上(因为1断开了)3
        
        if(x.p == nil){//4-1
            this.root = y;
        }else if(x == x.p.left){4-2
            x.p.left = y;
        }else{
            //3的后续  把父节点的right(也可能是根节点4-1或者左节点4-2)连接到y 4-3
            x.p.right = y;
        }
        y.left = x;//链接y和x  y成为x父节点  是左子树   5
        x.p = y;
    }

相关文章

  • 红黑树-旋转(未完成)

  • Collection

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

  • 数据结构

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

  • 红黑树的旋转

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

  • 从二叉树到红黑树

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

  • 红黑树(RBT)

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

  • 红黑树

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

  • 数据结构

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

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

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

  • 红黑树旋转规则总结

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

网友评论

      本文标题:红黑树-旋转(未完成)

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