package com.coding.basic.queue;
import javax.management.RuntimeErrorException;
public class CircleQueue <E> {
//用数组来保存循环队列的元素
private Object[] elementData ;
int size = 0;
//队头
private int front = 0;
//队尾
private int rear = 0;
public CircleQueue(int capacity){
elementData = new Object[capacity];
}
public boolean isEmpty() {
return front == rear;
}
public boolean isFull(){
return size == elementData.length;
}
public int size() {
return size;
}
public void enQueue(E data) {
if(isFull()){
throw new RuntimeException("The queue is full");
}
elementData[rear++] = data;
size++;
}
public E deQueue() {
/*if(isEmpty()){
throw new RuntimeException("The queue is empty");
}
E data = (E)elementData[front];
elementData[front] = null;
front = (front+1) % elementData.length;
size --;
return data ;*/
if (isEmpty()){
throw new RuntimeException("is empty");
}
E data = (E)elementData[front];
elementData[front] = null;
front = (front + 1) % elementData.length;
size --;
return data;
}
}