The problem with the implicit free list is that searches for a free block of the right size must examine allocated as well as free blocks.
One improvement would be to have an explicit list consisting of free blocks only.
So we should review options for constructing linked lists.
- Each free block could contain the address of the next free block - the "next" link. (singly linked list)
- Should we also have a "prev" link? (doubly linked list)
- How do we know if the list is empty?
- Should we have head node and/or and trailer node?
- Should the list be circular?