模拟队列:

public class QueueFor <T> {
	private T[] data =(T[]) new Object[20];
	private int front = 0;
	private int rear = 0;
	public void push(T newInt) {
		
		if( rear - front == data.length ) {
		
			T[] datanew =(T[]) new Object[data.length*2];
			
			for(int i = 0;i<data.length;++i) {
				datanew[i] = data[ (front+i) % data.length];
			}
			
			front = 0;
			rear = front + datanew.length;
			data = datanew;
		}
		
		data[rear++%data.length] = newInt;
		
	}
	public T pop() {//自动装箱
		if(rear == front ) {
			return null;
		}
		T result = data[front % data.length];
		front++;
		return result;

	}
}

模拟树:

public class TreeDemo {
	public int value;
	
	public TreeDemo lchild;
	
	public TreeDemo rchild;


	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}
	public void Out(TreeDemo root) {
		if(root!=null) {
			System.out.println(root.getValue());
			
			Out(root.lchild);
			Out(root.rchild);
			
		}
		
   }
}

测试:


public class TREETest {
	
	public static void main(String[] args) {
		int[] arr = {1,2,3,4,5,6,7,8,9};
		//System.out.println(arr.length);
		TreeDemo root = new TreeDemo();
		root.setValue(arr[0]);
		QueueFor< TreeDemo > que = new QueueFor<TreeDemo>();
		que.push(root);
		
		for(int i=1;i<arr.length;) {
			TreeDemo newTree = que.pop();
			
			TreeDemo left = new TreeDemo();
			left.setValue(arr[i]);
				System.out.println("   add:left:"+left.value);
			
			newTree.lchild = left;
			que.push(left);
			if(i+1<arr.length)
			{
				TreeDemo right = new TreeDemo();
				right.setValue(arr[i+1]);
					System.out.println("   add:right:"+right.value);				
				newTree.rchild = right;
				que.push(right);
			}else {
				break;
			}	
			i+=2;
	   }
		System.out.println("~~~~~~~添加完毕,下面是输出结果~~~~~~~~~~~~~~~");
	   root.Out(root);
		
	}
	
}