给你写了个树,然后按照二叉树排序了一个数组,然后按中序遍历打印树的结点值
public class Tree {
public int value;
public Tree left;
public Tree right;
Tree(int v) {
value = v;
}
public void AddLeft(int v) {
left = new Tree(v);
}
public void AddRight(int v) {
right = new Tree(v);
}
public void Add(int v) {
if (v < value) {
if (left == null) {
AddLeft(v);
} else {
left.Add(v);
}
} else {
if (right == null) {
AddRight(v);
} else {
right.Add(v);
}
}
}
public void Print() {
if (left != null) {
left.Print();
}
System.out.println(value);
if (right != null) {
right.Print();
}
}
public static void main(String[] args) {
int values[] = new int[] { 4, 2, 3, 1, 5, 6, 2, 7, 8 };
Tree bt = new Tree(values[0]);
for (int i = 1; i < values.length; i++) {
bt.Add(values[i]);
}
bt.Print();
}
}