If a linked list is doubly linked, then deleting a block pointed to by bp takes constant time:
after = NEXT_FREE(bp); before = PREV_FREE(bp); NEXT_FREE(before) = after; PREV_FREE(after) = before;
We would need to write these two macros:
- NEXT_FREE
- PREV_FREE