void * find_fit(size_t asize) param: asize - the adjusted size (includes header and footer) of a free block that is requested. Description: Search through the linked list (or tree) of free blocks for a free block whose size is >= asize (the requested size). Remove this block from the linked list (or tree) and return it. If no such block is found, return NULL. With the linked list, the search could use first fit or next fit. Other searches (such as best fit) are likely to take longer and impact the throughput. With a binary search tree, search for the 'ceiling' - a free block whose size is the smallest size that is still >= asize. So this will implement best fit. The binary tree should permit faster searches and so provide acceptable throughput. Return: A free block (not on the linked list or tree of free blocks) whose size is >= the requested size, asize.