public class Tree {
private int data;
private Tree left;
private Tree right;
public Tree(int data){
this.data = data;
this.left = null;
this.right = null;
}
public static Tree createTree(int[] input){
Tree root = null;
Tree temp = null;
for(int i = 0; i < input.length; i++){
if(root == null){
root = temp = new Tree(input[i]);
}else{
temp = root;
while(temp.data != input[i]){
if(input[i] <= temp.data){
if(temp.left != null){
temp = temp.left;
}else {
temp.left = new Tree(input[i]);
}
}else{
if(temp.right != null) {
temp = temp.right;
}else{
temp.right = new Tree(input[i]);
}
}
}
}
}
return root;
}
public static void preOrder(Tree tree){
if(tree != null){
System.out.println(tree.data + "");
preOrder(tree.left);
preOrder(tree.right);
}
}
public static int length(Tree tree){
int depth1;
int depth2;
if(tree == null) return 0;
depth1 = length(tree.left);
depth2 = length(tree.right);
if(depth1 > depth2)
return depth1+1;
else
return depth2+1;
}
public static void main(String[] args) {
int[] input = {4,2,6,1,3,5,7,8,10};
Tree tree = createTree(input);
System.out.println(Tree.length(tree));
System.out.println("前序遍历");
preOrder(tree);
}
}