全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java基于二叉查找树实现排序功能示例

本文实例讲述了Java基于二叉查找树实现排序功能。分享给大家供大家参考,具体如下:

/**
 * 无论排序的对象是什么,都要实现Comparable接口
 *
 * @param <T>
 */
public class BinaryNode<T extends Comparable<T>> {
  private static int index = 0; // 排序下标
  private static int len = 0; // 最大数组长度
  private T t; // 根节点
  private BinaryNode<T> left; // 左侧叶子节点
  private BinaryNode<T> right; // 右侧叶子节点
  public BinaryNode(T t) {
    len++;
    this.t = t;
  }
  /**
   * 往一颗书中插入值,在本质上都通过根节点一层层的判断。
   * 如果根节点不存在则新建节点
   * 如果根节点存在则判断应该在左侧还是在右侧插入,通常是左小右大
   * 
   * @param t
   */
  public void insert(T t) {
    if (this.t.compareTo(t) > 0) {
      if (this.left == null) {
        BinaryNode<T> node = new BinaryNode<T>(t);
        this.left = node;
      } else {
        this.left.insert(t);
      }
    } else {
      if (this.right == null) {
        BinaryNode<T> node = new BinaryNode<T>(t);
        this.right = node;
      } else {
        this.right.insert(t);
      }
    }
  }
  /**
   * 调用私有方法
   * 
   * @return
   */
  public Comparable<?>[] order() {
    Comparable<?>[] os = new Comparable[len];
    order(this, os);
    return os;
  }
  /**
   * 利用中序遍历查找整颗树
   * 
   * @param bn
   * @param os
   */
  private void order(BinaryNode<T> bn, Comparable<?>[] os) {
    if (bn.left == null) {
      os[index++] = bn.t;
    } else {
      order(bn.left, os);
      os[index++] = bn.t;
    }
    if (bn.right == null) {
      return;
    } else {
      order(bn.right, os);
    }
  }
}

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


# Java  # 二叉查找树  # 排序  # java二叉查找树的实现代码  # java 二叉查找树实例代码  # 详解Java二叉排序树  # Java的二叉树排序以及遍历文件展示文本格式的文件树  # Java中二叉树数据结构的实现示例  # 图解红黑树及Java进行红黑二叉树遍历的方法  # java使用归并删除法删除二叉树中节点的方法  # Java实现求二叉树的深度和宽度  # JAVA 实现二叉树(链式存储结构)  # Java 实现二叉搜索树的查找、插入、删除、遍历  # java实现二叉树的创建及5种遍历方法(总结)  # 图解二叉树的三种遍历方式及java实现代码  # 操作技巧  # 是在  # 相关内容  # 都要  # 遍历  # 一颗  # 感兴趣  # 数据结构  # 给大家  # 不存在  # 书中  # 上都  # 更多关于  # 所述  # 程序设计  # 讲述了  # lt  # param  # Comparable  # gt 


相关文章: 如何快速辨别茅台真假?关键步骤解析  如何确保西部建站助手FTP传输的安全性?  移民网站制作流程,怎么看加拿大移民官网?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  浅析上传头像示例及其注意事项  如何选择最佳自助建站系统?快速指南解析优劣  建站主机空间推荐 高性价比配置与快速部署方案解析  XML的“混合内容”是什么 怎么用DTD或XSD定义  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站之家VIP精选网站模板与SEO优化教程整合指南  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  建站上传速度慢?如何优化加速网站加载效率?  如何在景安服务器上快速搭建个人网站?  如何快速生成可下载的建站源码工具?  ,石家庄四十八中学官网?  如何用腾讯建站主机快速创建免费网站?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  广州商城建站系统开发成本与周期如何控制?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  香港服务器租用每月最低只需15元?  微信h5制作网站有哪些,免费微信H5页面制作工具?  中山网站制作网页,中山新生登记系统登记流程?  javascript中的try catch异常捕获机制用法分析  Android使用GridView实现日历的简单功能  如何在云主机上快速搭建网站?  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何基于PHP生成高效IDC网络公司建站源码?  平台云上自助建站如何快速打造专业网站?  如何高效利用亚马逊云主机搭建企业网站?  如何将凡科建站内容保存为本地文件?  如何用VPS主机快速搭建个人网站?  如何在IIS7中新建站点?详细步骤解析  北京专业网站制作设计师招聘,北京白云观官方网站?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  盘锦网站制作公司,盘锦大洼有多少5G网站?  香港服务器建站指南:免备案优势与SEO优化技巧全解析  建站之星代理费用多少?最新价格详情介绍  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  代刷网站制作软件,别人代刷火车票靠谱吗?  c# 在高并发场景下,委托和接口调用的性能对比  网站制作费用多少钱,一个网站的运营,需要哪些费用?  黑客如何利用漏洞与弱口令入侵网站服务器? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。