If you would have read the queue.h file from the beginning, you may
have got following comment:
* A list is headed by a single forward pointer (or an array of forward
* pointers for a hash table header). The elements are doubly linked
* so that an arbitrary element can be removed without a need to
* traverse the list. New elements can be added to the list before
* or after an existing element or at the head of the list. A list
* may only be traversed in the forward direction.
so list, which provides O(1) insertion and deletion,
but only forward traversal. To achieve this, you only need the
reference to the previously next pointer, which is exactly what is
implemented.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…