码迷,mamicode.com
首页 > 其他好文 > 详细

红黑树和B树

时间:2020-03-02 01:05:45      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:width   情况下   this   修改   color   inf   实现   data   技术   

1.二叉查找树

技术图片

技术图片

2.红黑树

2.1定义

技术图片

2.2变换规则

技术图片

左旋

技术图片 技术图片

右旋

 技术图片 技术图片

技术图片

技术图片

技术图片

 技术图片

部分实现代码

package 练习;

public class RedBlackTree {
    private final int R = 0;
    private final int B = 1;

    private Node root = null;

    class Node {
        int data;
        int color = R;
        Node left;
        Node right;
        Node parent;

        public Node(int data) {
            this.data = data;
        }
    }

    public void insert(Node root, int data) {//root默认不为空的情况下
        if (root.data < data) {//插入到右边
            if (root.right == null) {
                root.right = new Node(data);
            } else {
                insert(root.right, data);
            }
        } else {
            if (root.left == null) {
                root.left = new Node(data);
            } else {
                insert(root.left, data);
            }
        }
    }

    public void leftRotate(Node node) {
        if (node.parent == null) {//表示是根节点
            Node E = root;
            Node S = E.right;

            //移S的左子树
            E.right = S.left;
            S.left.parent = E;

            //修改E的指针
            E.parent = S;

            //修改S的指针
            S.parent = null;

        }
    }

}

技术图片

3.B树

技术图片

技术图片

技术图片

技术图片

技术图片

技术图片

4.B+树

技术图片

技术图片

5.总结

技术图片

 

红黑树和B树

标签:width   情况下   this   修改   color   inf   实现   data   技术   

原文地址:https://www.cnblogs.com/xinmomoyan/p/12392980.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!