Circular Queue
Can be used where we will continuously be reading and writing small amounts of data, and do not want to worry about overflowing a stack or queue.
Keeps track of the position to input new data to the queue, and the position to output data from the queue.