4.队列及消息队列

普通队列,先进先出,哥们

public class MyQueue {
	int maxSize;
	int[] queArray;
	int front;
	int rear;
	int nItems;
	
	public MyQueue(int len){
		maxSize = len;
		queArray = new int[maxSize];
		nItems = 0;
		front = 0;
		rear = -1;
	}
	
	public void insert(int val){
		if(rear == maxSize - 1){
			rear = -1;
		}
		this.queArray[++rear] = val;
		nItems++;
	}
	public int remove(){
		int res = this.queArray[front++];
		if(front == maxSize){
			front = 0;
		}
		nItems--;
		
		return res;
	}
	public int peekQueue(){
		return this.queArray[front];
	}
	public boolean isEmpty(){
		return this.nItems==0;
	}
	public boolean isFull(){
		return this.nItems==this.maxSize;
	}
	public int size(){
		return this.nItems;
	}
}

优先级队列,排队的时候警察叔叔或者是消防官兵可插队

public class PriorityQ {
	private int maxSize;
	private int[] queArr;
	private int nItems;
	public PriorityQ(int len){
		this.maxSize=len;
		this.queArr=new int[this.maxSize];
		this.nItems=0;
	}
	public void insert(int val){
		if(this.nItems==0){
			this.queArr[this.nItems++]=val;
		}else{
			int i ;
			for(i=this.nItems-1;i>=0;i--){
				if(val>this.queArr[i]){
					this.queArr[i+1]=this.queArr[i];
				}else{
					break;
				}
			}
			this.queArr[i+1]=val;
			this.nItems++;
		}
	}
	public int remove(){
		return this.queArr[--this.nItems];
	}
	public int peekMin(){
		return this.queArr[this.nItems-1];
	}
	public boolean isEmpty(){
		return this.nItems==0;
	}
	public boolean isFull(){
		return this.nItems==this.maxSize;
	}
	
}

  

posted @ 2017-08-25 17:41  Kyhoon  阅读(168)  评论(0编辑  收藏  举报