zoukankan      html  css  js  c++  java
  • BST插入与查找

    B树: 二叉查找树,所有左节点都比父节点要小,所有右节点都比父节点要大。查找,插入的时间复杂度为O(logn)

    public class BTreeTest {
        public static  int[] arrays = {1,7,5,12,8,4};
        private  static Node header;
        public static void main(String[] args){
            buildBTree(); //构建B树
            middleTravers(header); //中序遍历
            System.out.println(search(1,header));
            System.out.println(search(10,header));
        }
        
        private static  void buildBTree(){
            for(Integer i : arrays){
                if(null == header) {
                    header = new Node(i);
                }else{
                    insert(header,i);
                }
            }
        }
        
        private static void insert(Node n,int i){
            int value = n.value;
            if(value >= i){
                if(null == n.leftChildNode){
                    n.leftChildNode = new Node(i);
                }else{
                    insert(n.leftChildNode,i);
                }    
            }else{
                if(null == n.rightChildNode){
                    n.rightChildNode = new Node(i);
                }else{
                    insert(n.rightChildNode,i);
                }    
            }
        }
        
        private static boolean search(int i,Node node){
            if(null == node) return false;
            if(node.value > i){
                return search(i, node.leftChildNode);            
            }else if(node.value < i){
                return search(i, node.rightChildNode);                        
            }
            return true;
        }
        
        private static void middleTravers(Node node){
            if(null == node) return;
            middleTravers(node.leftChildNode);
            System.out.print(node.value);
            middleTravers(node.rightChildNode);
        }
        
        private static class Node{
            public int value;
            public Node leftChildNode; //左节点
            public Node rightChildNode;//右节点
            
            public Node(int i){
                value = i;
            }
        }
    }
  • 相关阅读:
    Java Web 网络留言板2 JDBC数据源 (连接池技术)
    Java Web 网络留言板3 CommonsDbUtils
    Java Web ConnectionPool (连接池技术)
    Java Web 网络留言板
    Java Web JDBC数据源
    Java Web CommonsUtils (数据库连接方法)
    Servlet 起源
    Hibernate EntityManager
    Hibernate Annotation (Hibernate 注解)
    wpf控件设计时支持(1)
  • 原文地址:https://www.cnblogs.com/hithlb/p/4420096.html
Copyright © 2011-2022 走看看