在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

java红黑树实现代码怎么写

101次阅读
没有评论

共计 2166 个字符,预计需要花费 6 分钟才能阅读完成。

以下是一个简单的红黑树实现代码示例:

class Node {int data;
    Node left, right, parent;
    boolean color;  // true 表示红色,false 表示黑色 
    
    public Node(int data) {this.data = data;
        this.color = true;  // 新插入的节点默认为红色 
        this.left = this.right = this.parent = null;
    }
}

public class RedBlackTree {private Node root;
    
    // 红黑树左旋转 
    private void leftRotate(Node x) {Node y = x.right;
        x.right = y.left;
        if (y.left != null) {y.left.parent = x;}
        y.parent = x.parent;
        if (x.parent == null) {root = y;} else if (x == x.parent.left) {x.parent.left = y;} else {x.parent.right = y;}
        y.left = x;
        x.parent = y;
    }
    
    // 红黑树右旋转 
    private void rightRotate(Node x) {Node y = x.left;
        x.left = y.right;
        if (y.right != null) {y.right.parent = x;}
        y.parent = x.parent;
        if (x.parent == null) {root = y;} else if (x == x.parent.right) {x.parent.right = y;} else {x.parent.left = y;}
        y.right = x;
        x.parent = y;
    }
    
    // 红黑树插入 
    public void insert(int data) {Node newNode = new Node(data);
        Node parent = null;
        Node current = root;
        
        while (current != null) {
            parent = current;
            if (data < current.data) {current = current.left;} else {current = current.right;}
        }
        
        newNode.parent = parent;
        if (parent == null) {root = newNode;} else if (data < parent.data) {parent.left = newNode;} else {parent.right = newNode;}
        
        insertFixUp(newNode);
    }
    
    // 红黑树插入修正 
    private void insertFixUp(Node x) {while (x != root && x.parent.color == true) {if (x.parent == x.parent.parent.left) {Node y = x.parent.parent.right;
                if (y != null && y.color == true) {x.parent.color = false;
                    y.color = false;
                    x.parent.parent.color = true;
                    x = x.parent.parent;
                } else {if (x == x.parent.right) {
                        x = x.parent;
                        leftRotate(x);
                    }
                    x.parent.color = false;
                    x.parent.parent.color = true;
                    rightRotate(x.parent.parent);
                }
            } else {Node y = x.parent.parent.left;
                if (y != null && y.color == true) {x.parent.color = false;
                    y.color = false;
                    x.parent.parent.color = true;
                    x = x.parent.parent;
                } else {if (x == x.parent.left) {
                        x = x.parent;
                        rightRotate(x);
                    }
                    x.parent.color = false;
                    x.parent.parent.color = true;
                    leftRotate(x.parent.parent);
                }
            }
        }
        root.color = false;
    }
    
    // 中序遍历打印红黑树 
    public void inorderTraversal(Node node) {if (node != null) {inorderTraversal(node.left);
            System.out.print(node.data + " ");
            inorderTraversal(node.right);
        }
    }
    
    public static void main(String[] args) {RedBlackTree rbTree = new RedBlackTree();
        
        rbTree.insert(7);
        rbTree.insert(3);
        rbTree.insert(18);
        rbTree.insert(10);
        rbTree.insert(22);
        rbTree.insert(8);
        rbTree.insert(11);
        
        rbTree.inorderTraversal(rbTree.root);
    }
}

以上是一个简单的红黑树实现,包含了插入和修正操作。您可以根据需要进行进一步扩展和优化。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-03-19发表,共计2166字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 久久精品一区二区影院 | 色偷偷亚洲综合网亚洲 | 国产亚洲精品久久久久久小舞 | 黄网站色视频 | 午夜熟女插插xx免费视频 | 国产亚洲欧美在在线人成 | 久久伦理片 | 高清中文字幕视频在线播 | 国产精品欧美韩国日本久久 | 人妻丰满熟妇av无码片 | 国产成人精品免费午夜 | 日本韩国亚洲欧美在线 | 另类视频第一页 | 东北少妇不带套对白 | 边做饭边被躁bd苍井空图片 | av中文字幕潮喷人妻系列 | 国产欧美另类性视频 | 女人寂寞偷人视频a级 | 亚洲欧美日韩一区二区 | 国产亚洲精品成人一区看片 | 色综合合久久天天综合绕视看 | 免费人成网 | 无码毛片视频一区二区本码 | 免费的毛片| 香港三级精品三级在线专区 | 国产乱子伦在线观看 | 国产伦精品一区二区三区妓女下载 | 加勒比一本大道香蕉在线视频 | 1204曰韩欧美成人看片 | 香港一级毛片免费看 | 蜜桃臀无码内射一区二区三区 | 亚洲成色www久久网站 | 无码一区二区三区老色鬼 | 后入内射国产一区二区 | 一区二区午夜 | 色人久久 | 亚洲第一在线综合网站 | 成人做受黄大片 | 最近中文字幕免费完整版 | 免费看av在线网站网址 | 国产成人久久av免费 |