
//环形队列@Datapublic class RingQueue {private int front; //队列头private int rear; //队列尾巴private int[] array;private int maxSize; //数组最大容量public RingQueue(int maxSize){array = new int[maxSize];setMaxSize(maxSize+1);}//添加public void add(int number){//满了if(isFull()){System.out.println("队列已经满了");return;}System.out.println("添加数据: "+number);array[rear] = number;rear = (rear +1) % maxSize;}//获取public void get(){//判断是否为空if(isNull()){System.out.println("队列中没有数据了");return;}System.out.println("获取数据: "+array[front]);front = (front + 1) % maxSize;}//查看数据public void view(){if(isNull()){System.out.println("暂时没有数据");return;}int index =front;System.out.println();System.out.println("展示数据开始________________");for (int i = 0; i < size() ; i++) {System.out.println(i+": "+ array[index]);index = (index +1) % maxSize;}System.out.println("展示数据结束________________");System.out.println();}//获取当前队列中有效数据个数public int size(){return (rear + maxSize - front) % maxSize;}//判断队列是否已满public boolean isFull(){return (rear+1) % maxSize == front;}//判断队列是否为空public boolean isNull(){return rear == front;}}
- 测试 ```java {
RingQueue ringQueue = new RingQueue(3);ringQueue.add(10);ringQueue.add(20);ringQueue.add(30);ringQueue.add(40);ringQueue.view();ringQueue.get();ringQueue.view();
} ```
