假设通过二叉树对如下10个随机数进行排序
67,7,30,73,10,0,78,81,10,74
第一个步骤是把数据插入到该二叉树中
二叉树存储数据基本逻辑:小、相同的放左边,大的放右边
图片来源:how2j.cn
二叉树的遍历分左序,中序,右序
左序即: 中间的数遍历后放在左边
中序即: 中间的数遍历后放在中间
右序即: 中间的数遍历后放在右边
public class Node {
public Node leftNode;
public Node rightNode;
public Object value;
//插入数据
public void add(Object v) {
if(value==null) {
value = v;
}else {
if((Integer)v <= (Integer)value) {
if(leftNode==null) {
leftNode = new Node();
}
leftNode.add(v);
}else {
if(rightNode==null) {
rightNode = new Node();
}
rightNode.add(v);
}
}
}
//中序遍历
public List<Object> values(){
List<Object> list = new ArrayList<>();
if(leftNode != null) {
list.addAll(leftNode.values());
}
list.add(value);
if(rightNode !=null) {
list.addAll(rightNode.values());
}
return list;
}
public static void main(String[] args) {
int[] arrayA = {67, 7, 30, 73, 10, 0, 78, 81, 10, 74};
Node root = new Node();
for(int number: arrayA) {
root.add(number);
}
System.out.println(root.values());//[0, 7, 10, 10, 30, 67, 73, 74, 78, 81]
}
}