The doubly linked list is headed by a pair of pointers, one to the head of the list and the other to the tail of the list. 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, at the head of the list, or at the end of the list. A doubly linked list may be traversed in either direction.
typedef struct s_list_element s_list_element
Opaque definition of a list element.
The list element represents one element in the doubly linked list.