博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
查找树ADT
阅读量:5086 次
发布时间:2019-06-13

本文共 1365 字,大约阅读时间需要 4 分钟。

通过二叉查找树实现排序的例程

/** * 无论排序的对象是什么,都要实现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); } }}

 

转载于:https://www.cnblogs.com/learnhow/p/6047421.html

你可能感兴趣的文章
从一个标准 url 里取出文件的扩展名
查看>>
map基本用法
查看>>
poj-1163 动态规划
查看>>
Golang之interface(多态,类型断言)
查看>>
Redis快速入门
查看>>
BootStrap---2.表格和按钮
查看>>
Linear Algebra lecture 2 note
查看>>
CRC计算模型
查看>>
Ajax之404,200等查询
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>
csv HTTP简单表服务器
查看>>
OO设计的接口分隔原则
查看>>
数据库连接字符串大全 (转载)
查看>>
java类加载和对象初始化
查看>>
对于负载均衡的理解
查看>>
django简介
查看>>
window.event在IE和Firefox的异同
查看>>
常见的js算法面试题收集,es6实现
查看>>
IO流写出到本地 D盘demoIO.txt 文本中
查看>>
Windows10 下Apache服务器搭建
查看>>