package vn.edu.rmit.sadi;
public class Queue {
private Object[] elements;
private int head;
private int tail;
private int size;
private boolean debug;
public Queue(int capacity) {
elements = new Object[capacity];
head = 0;
tail = 0;
size = 0;
}
// assumes a non-empty queue
public Object removeFirst() {
Object r = elements[head];
head++;
size--;
if(head == elements.length) {
head = 0;
}
return r;
}
// assumes non-full queue
public void addToTail(Object o) {
elements[tail] = o;
tail++;
size++;
if(tail == elements.length) {
tail = 0;
}
}
public boolean isEmpty() {
return size == 0;
}
public boolean isFull() {
return size == elements.length;
}
public void setDebug(boolean f) {
debug = f;
}
}