Write the class CircularQueue.  It should contain the following:

1. Default constructor
2. Some structure to contain the elements of the CircularQueue
3. head and tail references
4. peek() which returns the element in the front of the CircularQueue
5. remove() which returns the element in front of the CircularQueue
   and deletes it from the CircularQueue and does nothing otherwise
6. offer() which adds an element to the CircularQueue if it can, and
   does nothing otherwise
7. isEmpty() which returns true if the CircularQueue is empty

Compare your answer to the code for the Josephus problem.  

Then go and solve the Josephus problem.