package alog; /** * 环形队列数组实现 */ public class CircleQueue { private int front; private int rear; private int maxsize; private int[] data; public boolean isEmpty() { return front == rear; } public boolean isFull() { return (rear + 1) % maxsize == front; } public CircleQueue(int maxsize) { this.maxsize = maxsize+1; this.data = new int[maxsize+1]; } public boolean addQueue(int v) { if (isFull()){ System.out.println("队列已满"); return false; } data[rear] = v; rear = (rear + 1) % maxsize; return true; } public int takeQueue() { int result; if (isEmpty()) return -1; result = data[front]; front = (front + 1) % maxsize; return result; } public void show() { for(int i =front;i!=rear;i=(i+1)%maxsize){ System.out.print(data[i]+","); } System.out.println(""); } public int size() { return (rear + maxsize - front) % maxsize; } public static void main(String[] args) { CircleQueue queue = new CircleQueue(6); queue.addQueue(10); queue.addQueue(11); queue.addQueue(12); queue.addQueue(13); queue.addQueue(15); queue.addQueue(14); queue.addQueue(16); queue.addQueue(17); queue.addQueue(18); queue.addQueue(19); queue.addQueue(20); int i = queue.takeQueue(); System.out.println("队列提取数据:"+i); i = queue.takeQueue(); System.out.println("队列提取数据:"+i); queue.addQueue(21); queue.show(); } }
简单数组实现环形队列
于 2022-07-23 15:39:59 首次发布