利用队列来插入
public class TreeQueue<T> {
private T[] data = (T[]) new Object[20];
private int start = 0;
private int end = 0;
public void push(T newint) {
if( end - start == data.length ) {
T[] datanew = (T[]) new Object[ data.length * 2 ];
for(int i = 0; i < data.length; i++) {
datanew[i] = data[ ( start + i ) % data.length ];
}
start = 0;
end = start + data.length;
data = datanew;
}
data[ end % data.length ] = newint;
end++;
}
public T get() {
if( end == start ) {
return null;
}
T result = data[start % data.length];
start++;
return result;
}
}
public class TreeTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = {1,4,7,2,43,12,66,43,21,87,67,54,32,11,0,55};
Tree root = new Tree();
root.value = arr[0];
TreeQueue<Tree> queue = new TreeQueue<Tree>();
queue.push(root);
for(int i = 1; i < arr.length;) {
Tree newtree = queue.get();
Tree nodel = new Tree();
nodel.value = arr[i];
newtree.left = nodel;
queue.push(nodel);
if(i+1 < arr.length) {
Tree noder = new Tree();
noder.value = arr[i+1];
newtree.right = noder;
queue.push(noder);
}else {
break;
}
i += 2;
}
System.out.println(root);
}
}