We shall again use an array for storing the items in the queue. This time, however, we shall need two pointers, one to indicate where the next item to be placed in the queue should be stored, which we call top, and another to indicate the location of the next item to retrieved which, we call base. Another new feature is that we shall treat the underlying array as a circular buffer. Thus top and base are now always incremented, but when either reaches the upper bound of the array, it wraps round back to the beginning.