To maintain the free blocks in an explicit free list, a doubly linked circular list with header has advantages over other choices. But...
- The Head Nodes need to be in the heap along with the free blocks.
- Finding a suitable free block to use will only require looking at free blocks, not allocated blocks.
- Deletion operations can be constant time once the right free block to use has been found.
- Insertion of a block onto the free list can be constant time, if it is simply inserted at the beginning of the explicit free list.