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

如果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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 激活成功教程软件下载网站100个

    激活成功教程软件下载网站100个激活成功教程软件下载网站100个□xuly发表于2005-11-247:48:00

    2022年6月29日
    40
  • 金税盘计算机USB无法识别,金税盘连接电脑无法识别怎么回事?「建议收藏」

    金税盘计算机USB无法识别,金税盘连接电脑无法识别怎么回事?「建议收藏」金税盘连接电脑无法识别怎么回事?答:部分情况可能是因为USB供电不稳定,造成金税盘驱动无法正常运行;建议电脑重启,金税盘数据线重新插拔一下或者更换一个USB端口连接试试.如果多次尝试无效,则需要联系服务单位处理.金税盘使用增值税防伪税控系统,可开具增值税专用发票和增值税普通发票,营改增试点地区和行业一般纳税人(提供货物运输服务的纳税人除外)适用.税控盘使用货物运输业专用发票税控系统,可开具货物运输…

    2022年6月11日
    130
  • centos7 top命令_linux chmod命令

    centos7 top命令_linux chmod命令top命令Linuxtop命令用于实时显示process的动态。top参数详解第一行,任务队列信息**系统当前时间:**13:52:56**系统开机后到现在的总运行时间:**up66

    2022年7月28日
    7
  • 使用IntelliJ IDEA 配置Maven(入门)「建议收藏」

    使用IntelliJ IDEA 配置Maven(入门)「建议收藏」1.下载Maven官方地址:http://maven.apache.org/download.cgi解压并新建一个本地仓库文件夹2.配置本地仓库路径3.配置maven环境变量4.在IntelliJIDEA中配置maven打开-File-Settings5.新建mavenWEB项目打开-File-New-Project点击NEXT

    2022年5月28日
    54
  • linux修改ftp目录_ftp切换目录命令

    linux修改ftp目录_ftp切换目录命令linuxFTP命令详解更新时间:2008年09月12日00:14:55作者:整理的比较全的linux下ftp命令详细说明FTP的命令行格式为:ftp-v-d-i-n-g[主机名],其中-v显示远程服务器的所有响应信息;-n限制ftp的自动登录,即不使用;.netrc文件;-d使用调试方式;-g取消全局文件名。ftp使用的内部命令如下(中括号表示可选项):1.![cmd[a…

    2022年9月21日
    0
  • Nginx-rtmp、FFmpeg实现直播效果并在web页面播放「建议收藏」

    Nginx-rtmp、FFmpeg实现直播效果并在web页面播放「建议收藏」本文参考链接:https://blog.csdn.net/u011424614/article/details/113420000前情提示:本文使用的是windows10系统主要流程讲解1.本文选择的路线是视频文件–>FFmpeg–>nginx–>web播放2.FFmpeg是一个强大的视频编辑软件,基本干视频,音频的多多少少都会用到这个软件。本文中FFmpeg的作用是将视频整成视频流的形式。3.nginx的作用主要是将FFmpeg的视频流进行发布,供web进行访问。4.

    2022年10月7日
    0

发表回复

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

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