Queue primitive operations are to be supported:

  • enqueue(o):
    • Insert o at rear of queue – Input: Object; Output: None
  • dequeue():
    • Remove object at front; error if empty – Input: None; Output: Object removed

Queue support operations are to be supported:

  • size():
    • Return number of objects in queue – Input: None; Output: Integer
  • isEmpty():
    • Return a boolean indicating queue empty – Input: None; Output: Boolean
  • first():
    • Return object at front without removing; error if empty – Input: None; Output: Object