/** * 队列 * Create by Administrator * 2018/6/11 0011 * 下午 3:27 **/ public class Queue { private int maxSize; private long[] queArray; private int front; //前 private int rear; //后 private int nItems; public Queue(int maxSize) { this.maxSize = maxSize; this.queArray = new long[maxSize]; this.front = 0; this.rear = -1; this.nItems = 0; } /** * 添加 * @param j */ public void insert(long j){ if(isFull()){ System.out.println("队列满了"); }else { if(rear == maxSize-1){ rear = -1; } queArray[++rear] = j; nItems++; } } /** * 删除 * @return */ public long remove(){ if(isEmpty()){ return -1; }else{ long temp = queArray[front++]; if(front == maxSize){ front = 0; } nItems--; return temp; } } /** * 查看队列第一个 * @return */ public long peekFront(){ return queArray[front]; } /** * 判断队列是否为空 * @return */ public boolean isEmpty(){ return (nItems == 0); } /** * 判断队列是否满了 * @return */ public boolean isFull(){ return (nItems == maxSize); } /** * 队列大小 * @return */ public int size(){ return nItems; } public static void main(String[] args) { Queue queue = new Queue(5); queue.insert(10); queue.insert(20); queue.insert(30); queue.insert(40); queue.remove(); queue.remove(); queue.remove(); queue.insert(50); queue.insert(60); queue.insert(70); queue.insert(80); queue.insert(90); queue.insert(95); System.out.println(queue.size()); while (!queue.isEmpty()){ long n = queue.remove(); System.out.print(n +" "); } System.out.println(""); System.out.println(queue.size()); } }
/** * 优先级队列 * Create by Administrator * 2018/6/11 0011 * 下午 4:15 **/ public class PriorityQ { private int maxSize; private long[] queArray; private int nItem; public PriorityQ(int maxSize) { this.maxSize = maxSize; this.queArray = new long[maxSize]; this.nItem = 0; } public void inset(int item){ int j; if(nItem == 0){ queArray[nItem++] = item; }else{ for(j = nItem-1; j >= 0;j--){ if(item > queArray[j]){ queArray[j+1] = queArray[j]; }else{ break; } } queArray[j+1] = item; nItem++; } } public long remve(){ return queArray[--nItem]; } public long meeMin(){ return queArray[nItem-1]; } public boolean isEmpty(){ return (nItem == 0); } public boolean isFull(){ return (nItem == maxSize); } public static void main(String[] args) { PriorityQ p = new PriorityQ(5); p.inset(30); p.inset(50); p.inset(10); p.inset(20); p.inset(30); while (!p.isEmpty()){ long item= p.remve(); System.out.print(item + " "); } System.out.println(""); } }