Java数据结构——队列

class Queue{
	private int maxSize;			//队列的长度
	private long[] queueArray;		//创建队列的数组的引用
	private int front;			//创建队头的引用
	private int rear;			//创建队尾的引用
	private int curNum;			//创建当前元素的个数
	
	public Queue(int s) {		//构造函数
		this.maxSize = s;
		queueArray = new long[maxSize]; //创建对象
		front = 0;			//队头等于0
		rear = -1;			//队尾等于-1
		curNum = 0;			//当前的元素的个数是0
	}
	
	public void insert(long j){
		if(rear == maxSize-1){		//如果队尾是队列的最大值-1,则队尾等于-1
			rear = -1;
		}
		queueArray[++rear] = j;		//先自加为0,然后给队尾的元素赋值
		curNum++;			//当前的元素的个数加1
	}
	
	public long remove(){
		long temp = queueArray[front++];	//取得队头的元素,然后自加
		if(front == maxSize){
			front =0;
		}
		curNum--;		//当前的元素的个数减1
		return temp;
	}
	
	public long peekFront(){
		return queueArray[front];		
	}
	
	public boolean isEmpty(){
		return (curNum==0);
	}
	
	public boolean isFull(){
		return (curNum==maxSize);
	}
	
	public int Size(){	//返回当前队列元素的个数
		return curNum;
	}
	
}

public class Queue_demo {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Queue queue_demo = new Queue(5);
		queue_demo.insert(50);
		queue_demo.insert(60);
		queue_demo.insert(70);
		queue_demo.insert(80);
		queue_demo.remove();
		queue_demo.insert(50);
		
		while( !queue_demo.isEmpty()){
			long value = queue_demo.remove();
			System.out.print(value+"、");
		}
	}
}

 

posted @ 2016-03-29 20:07  tonglin0325  阅读(215)  评论(0编辑  收藏  举报