How memory is freed using Boundary tag method in the context of Dynamic memory management?
Boundary Tag Method to free Memory
To delete an arbitrary block from the free list (to join it with a newly freed block) without traversing whole list, the free list must be doubly linked. Therefore each free block must have 2 pointers, next and prev to the next and last free block on the free block. (This is needed when joining a newly freed block with a free block that immediately proceeds in memory).