package binaryTree;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author q06285:
* @version 创建时间:2019年10月8日 上午10:37:41
*
* 假设通过二叉树对如下10个随机数进行排序
* 67,7,30,73,10,0,78,81,10,74
* 排序的第一个步骤是把数据插入到该二叉树中
* 插入基本逻辑是,小、相同的放左边,大的放右边
*
*
*/
public class Node {
public Node leftNode;
public Node rightNode;
public Object value;
public void add(Object v) {
if (null == value) {
value = v;
} else {
if ( (Integer)v - (Integer)value <= 0) {
if ( null == leftNode) {
leftNode = new Node();
}
leftNode.add(v);
}
else {
if (null == rightNode) {
rightNode = new Node();
}
rightNode.add(v);
}
}
}
public static void main(String[] args) {
int randoms[] = new int[] {67, 7, 30, 73, 10, 0, 78, 81, 10, 74};
Node roots = new Node();
for (int number : randoms) {
roots.add(number);
}
System.out.println(roots.values());
}
public List<Object> values(){
List<Object> values = new ArrayList<>();
if (null != leftNode) {
values.addAll(leftNode.values());
}
values.add(value);
if (null != rightNode) {
values.addAll(rightNode.values());
}
return values;
}
}
网友评论