红黑树和B树

Posted xinmomoyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红黑树和B树相关的知识,希望对你有一定的参考价值。

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树的主要内容,如果未能解决你的问题,请参考以下文章

B树和B+树的区别

说一下B+tree和二叉搜索树的区别?说一下二叉搜索树和AVL树红黑树之间的差别

高级树AVL 树和红黑树

B树和B+树的区别

算法红黑树-二叉树-算法

红黑树:构建红黑树