A queue is a "first in, first out" abstract data type. Like a checkout
queue (line) at a store, the first item in the queue is the first
one out. New items are added to the end of the queue via pushback().
Items are removed from the queue at the front via pop().
The implementation is a head/tail doubly linked list.