Java数据结构——队列

//=================================================
// File Name       :	Queue_demo
//------------------------------------------------------------------------------
// Author          :	Common

//类名:Queue
//属性:
//方法:
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;
	}
	
}


//主类
//Function        : 	Queue_demo
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+"、");
		}
	}

}

 

原文地址:https://www.cnblogs.com/tonglin0325/p/5334285.html