zoukankan      html  css  js  c++  java
  • 红黑树和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.总结

  • 相关阅读:
    第16周作业
    第15周作业
    迟到的第14周作业
    第13次作业集
    软件工程结课总结
    第13次作业
    第12次作业
    第11次作业--字符串的处理
    第10次作业(2)
    第十次作业
  • 原文地址:https://www.cnblogs.com/xinmomoyan/p/12392980.html
Copyright © 2011-2022 走看看