說白了就是二叉樹排序..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);
}
}
}
}
}
其實我感覺不用怎麼解釋..大的放左面.小的放右面..就是遍歷的時候...如果不用遞歸比較複雜..用了遞歸也挺饒人的