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

网友投稿 193 2023-04-16


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

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

/**

* 无论排序的对象是什么,都要实现Comparable接口

*

* @param

*/

public class BinaryNode> {

private static int index = 0; // 排序下标

private static int len = 0; // 最大数组长度

private T t; // 根节点

private BinaryNode left; // 左侧叶子节点

private BinaryNode 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 node = new BinaryNode(t);

this.left = node;

} else {

this.left.insert(t);

}

} else {

if (this.right == null) {

BinaryNode node = new BinaryNode(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 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程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:前端mock工具推荐(前端monorepo)
下一篇:webpack学习笔记之优化缓存、合并、懒加载
相关文章

 发表评论

暂时没有评论,来抢沙发吧~