To do an enqueue, call Reset followed by Insert.
To dequeue, call Advamce_to_End followed by
All of the pointer work was done in the list_position,
leaving the queue writer to reason at the appropriate
level of abstraction, rather than needing to worry
about setting up nodes or links.
A client of the queue component will simply call
enqueues and dequeues, doing all thinking and
reasoning at that level without any need to worry
about low level details.