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;
            }
        }
    }
  • 相关阅读:
    webapi支持session
    webapi返回数据同时支持xml与json
    webapi权限控制
    Asp.net 将js文件打包进dll 方法
    All Media to FLV asp.net在线视频自动转换并截图调试成功!
    未能从程序集“System.ServiceModel
    [javascript]浮动广告
    [python]multi thread tcp connect port scanner
    [vc]让你Y的用YY
    [python]扫描网站后台脚本
  • 原文地址:https://www.cnblogs.com/hithlb/p/4420096.html
Copyright © 2011-2022 走看看