These routines manipulate lists. Lists can be used to maintain a table of indefinite size, constrained only by memory limitations.
Lists can also perform as stacks or fifo's.
A list of pointers is called an indirect list. A list of objects, such as a list of characters, a list of integers, or a list of structures, is called a direct list. In both cases these routines all accept and return pointers. For indirect lists, the pointers themselves are considered the elements of the list. For direct lists, the returned pointers point to elements of the list.