http://www.turbopower.com/products/systools/Containers/
The SysTools list container is implemented as a doubly-linked list, a data
container where data objects are chained together like links on a chain:
from any data object you can find the next one (or the previous one) easily.
However, unlike an array (for example) you cannot 'jump' to a particular data
object, you have to search for it sequentially by following the links. Adding
and removing a data object is simple and fast: you are only affecting its immediate neighbors.
Contrast this with an array: insertion and deletion of a data object is
inefficient (you have to make room in the array for insertion, or close up
the hole for deletion), but accessing of random elements is easy. For large
numbers of elements (with corresponding insertions and deletions) an array
can be very inefficient compared with a linked list