The study of data structures and algorithms will enable you to make the implementation decision which most closely matches your users' specifications. By ensuring that the tail of the list is always pointing to the head, we can build a circularly linked list. In modern processors, the few bytes of memory saved in this way would probably not be regarded as significant. Doubly linked lists have a pointer to the preceding item as well as one to the next. They permit scanning or searching of the list in both directions.
Memory is just an array of words.
After a series of memory allocations and de-allocations, there are blocks of free memory scattered throughout the available heap space. In order to be able to re-use this memory, memory allocators will usually link freed blocks together in a free list by writing pointers to the next free block in the block itself. An external free list pointer pointer points to the first block in the free list. The entry in the index under garbage collection will probably lead to a discussion of this topic. Dynamic data structures Structures which grow or shrink as the data they hold changes.