public class Queue { CircularList contents; Queue() { contents = new CircularList(); } public void enqueue(Object x) { contents.insert(x); contents.move(); } public Object dequeue() { if (isEmpty()) return null; else { Object firstItem = contents.head(); contents.delete(); return firstItem; } } public Object peek() { if (isEmpty()) return null; else return contents.head(); } public boolean isEmpty() { return (contents.isEmpty()); } public String toString() { if (isEmpty()) return "empty queue"; else return "queue " + contents; } }