Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.NoSuchElementException;
- public class CircularQueue<ELEMENT> {
- private ELEMENT[] queue;
- private int size, front, last, nElements;
- @SuppressWarnings("unchecked")
- public CircularQueue(int size)
- {
- this.size = size;
- this.front = this.last = -1;
- this.queue = (ELEMENT[]) new Object[size];
- this.nElements = 0;
- }
- public ELEMENT getFront() {
- if(isEmpty()) return null;
- return queue[front];
- }
- public ELEMENT getLast() {
- if(isEmpty()) return null;
- return queue[last-1];
- }
- public ELEMENT[] getQueueArray()
- {
- return this.queue;
- }
- public int getSize()
- {
- return this.size;
- }
- public boolean isEmpty() {
- return this.nElements == 0;
- }
- public boolean isFull()
- {
- return this.nElements == this.size;
- }
- public void enqueue(ELEMENT element)
- {
- if(isFull()) throw new IllegalStateException("Queue is full");
- if(element == null) throw new NullPointerException("The new is null!");
- else
- {
- if(isEmpty())
- {
- front = last = 0;
- }
- last%=nElements+1;
- queue[last++] = element;
- nElements++;
- }
- }
- public ELEMENT dequeue()
- {
- if(isEmpty()) throw new NoSuchElementException("Empty queue.");
- ELEMENT retElement = queue[front];
- queue[front++] = null;
- nElements--;
- return retElement;
- }
- }
Add Comment
Please, Sign In to add comment