二分查找判定树(二分查找树平均查找长度)

如果data[0]等于一组数据中最小的,那么就会增加查找的时间复杂度。平衡二叉树(追求极致的平衡),现实需求很难满足,红黑数孕育而生

大家好,又见面了,我是你们的朋友全栈君。

Don’t say much, just go to the code.

package org.bood.tree;

/** * 二分查找树 * ps:如果 data[0] 等于一组数据中最小的,那么就会增加查找的时间复杂度。<br/> * 平衡二叉树(追求极致的平衡),现实需求很难满足,红黑数孕育而生 <br/> * * @author bood * @since 2020/10/16 */
public class BinarySearchTree { 
   

    /** * 根节点数 */
    int data;
    /** * 左边的数 */
    BinarySearchTree left;
    /** * 右边的数 */
    BinarySearchTree rigth;

    public BinarySearchTree(int data) { 
   
        this.data = data;
        this.left = null;
        this.rigth = null;
    }

    // 二分查找
    public void insert(BinarySearchTree root, int data) { 
   
        // 数大于根节点数,右边
        if (data > root.data) { 
   

            // 右边是空的直接插入
            if (null == root.rigth) { 
   
                root.rigth = new BinarySearchTree(data);
            } else { 
   
                insert(root.rigth, data);
            }

            // 数大于根节点数,左边
        } else { 
   

            // 左边是空的直接插入
            if (null == root.left) { 
   
                root.left = new BinarySearchTree(data);
            } else { 
   
                insert(root.left, data);
            }

        }
    }

    // 中序遍历
    public void in(BinarySearchTree root) { 
   
        if (null != root) { 
   
            in(root.left);
            System.out.print(root.data + " ");
            in(root.rigth);
        }
    }

    public static void main(String[] args) { 
   
        int[] data = { 
   5, 6, 1, 7, 8, 9, 2, 4, 10};
        BinarySearchTree root = new BinarySearchTree(data[0]);
        for (int i = 0; i < data.length; i++) { 
   
            root.insert(root, data[i]);
        }

        System.out.println("中序遍历:");
        root.in(root);
    }

}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128209.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何查看tomcat的版本号(文件版本号)

    进入Tomcat/bin目录下,Shift+右键->在此处打开命令提示框,打开命令提示符窗口,输入命令version.bat,就可以看到如下结果哈哈哈,报错了…懵了吧,别急看看错误说明…貌似明白了,再来一次总结:进入Tomcat/bin目录下,Shift+右键->在此处打开命令提示框,打开命令提示符窗口,输入命令version.bat,如果报错,试试输入命令.\v…

    2022年4月13日
    990
  • 指令字长,机器字长,存储字长的关系_指令字长的概念

    指令字长,机器字长,存储字长的关系_指令字长的概念指令字长、存储字长、机器字长、时钟周期、机器周期、指令周期、取址周期、存取周期的关系考研做题途中遇到这些问题,发现自己掌握的很模糊,遂写下此篇,加深记忆。1、机器字长、存储字长、指令字长机器字长:CPU一次能够处理的数据的位数。通常等于寄存器的位数。例子:windows64位/32位,这里的64位和32位指的就是该操作系统的机器字长。存储字长:计算机存储器中一个存储单元可以存储的位数。例子:某某计算机按照字节编址,即说明该计算机的存储字长为1B=8位。指令字长:计算机内一条指令的位数。这里通常指

    2022年8月31日
    2
  • jar包和war包区别及理解

    jar包和war包区别及理解在开发阶段不适合使用war包,因为在开发阶段,经常需要添加或删除Web应用程序的内容,更新Servlet类文件,而每一次改动后,重新建立war包将是一件浪费时间的事情。在产品发布阶段,使用war文件比较合适的,因为在这个时候,几乎不需要再做什么改动了。jar包jar是类的归档文件JAR(JavaArchive,Java归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件,为J2EE应用程序创建的jar文件是EAR文件(企业jar文件),jar文件格式以流行的ZIP文

    2022年5月24日
    33
  • python 字典最外层使用_python字典底层实现

    python 字典最外层使用_python字典底层实现前言问题1:python中的字典到底是有序还是无序问题2:python中字典的效率如何python字典底层原理在Python3.5以前,字典是不能保证顺序的,键值对A先插入字典,键值对B后插

    2022年7月29日
    8
  • 编程语言与Python介绍

    编程语言与Python介绍一、编程语言的分类1.机器语言:计算机能直接理解的二进制指令(10101010101)优点:执行速度快缺点:开发效率非常低2.汇编语言:通过英文字符组成代表一组二进制指令优点:开发效率相较

    2022年7月6日
    20
  • ventricular septal defect_three identical strangers

    ventricular septal defect_three identical strangers转一个BLOG,是美国一同行写的关于eXtremeDB的,但作者似乎是个中国人。这是BLOG原文地址:http://www.weiqigao.com/blog/2006/04/25/extremedb_exposed.html…

    2022年10月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号