说白了就是二叉树排序..java中hashset中非基本数据类型的对象比较就是用的这个方式...
package binarytree;
public class BinaryTree {
public static void main(String[] args) {
Node root = null;
int[] ints = { 123, 1234, 324, 2, 1, 12, 31, 4, 3, 3, 466, 7, 87, 87, 56, 456, 5 };
root = new Node(ints[0]);
for (int i = 1; i < ints.length; i++) {
root.add(new Node(ints[i])) ;
}
print(root) ;
}
private static void print(Node node){
if(node.right!=null){
print(node.right) ;
}
System.out.print(node.value+",");
if(node.left!=null){
print(node.left) ;
}
}
static class Node {
public Node(int value) {
this.value = value;
}
int value;
Node left;
Node right;
/**
* 增加一个node
*
* @param node
*/
public void add(Node node) {
if (this.value > node.value) {
if (this.right == null) {
this.right = node;
} else {
this.right.add(node);
}
} else {
if (this.left == null) {
this.left = node;
} else {
this.left.add(node);
}
}
}
}
}
其实我感觉不用怎么解释..大的放左面.小的放右面..就是遍历的时候...如果不用递归比较复杂..用了递归也挺饶人的