本文实例讲述了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
相关文章:
营销式网站制作方案,销售哪个网站招聘效果最好?
网站制作话术技巧,网站推广做的好怎么话术?
如何选择高效可靠的多用户建站源码资源?
jQuery 常见小例汇总
建站之星如何实现网站加密操作?
代刷网站制作软件,别人代刷火车票靠谱吗?
c# 在高并发场景下,委托和接口调用的性能对比
,网页ppt怎么弄成自己的ppt?
北京网站制作的公司有哪些,北京白云观官方网站?
创业网站制作流程,创业网站可靠吗?
如何获取开源自助建站系统免费下载链接?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
高端建站三要素:定制模板、企业官网与响应式设计优化
自助网站制作软件,个人如何自助建网站?
建站主机是什么?如何选择适合的建站主机?
平台云上自助建站如何快速打造专业网站?
家具网站制作软件,家具厂怎么跑业务?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
济南网站制作的价格,历城一职专官方网站?
再谈Python中的字符串与字符编码(推荐)
香港服务器网站推广:SEO优化与外贸独立站搭建策略
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何在Windows服务器上快速搭建网站?
制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?
如何续费美橙建站之星域名及服务?
开封网站制作公司,网络用语开封是什么意思?
如何通过云梦建站系统实现SEO快速优化?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
建站之星好吗?新手能否轻松上手建站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
定制建站方案优化指南:企业官网开发与建站费用解析
寿县云建站:智能SEO优化与多行业模板快速上线指南
宝塔建站后网页无法访问如何解决?
如何彻底删除建站之星生成的Banner?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
建站之星2.7模板快速切换与批量管理功能操作指南
如何快速搭建高效可靠的建站解决方案?
如何在阿里云服务器自主搭建网站?
制作农业网站的软件,比较好的农业网站推荐一下?
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
内部网站制作流程,如何建立公司内部网站?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
济南网站建设制作公司,室内设计网站一般都有哪些功能?
如何在云指建站中生成FTP站点?
如何快速选择适合个人网站的云服务器配置?
如何快速配置高效服务器建站软件?
*请认真填写需求信息,我们会在24小时内与您取得联系。