Question: Modify your min-heap that stores arbitrary structs Using C language Create 2 files: min_heap.c and min_heap.h To create a min-heap that can sort *any datatype*,
Modify your min-heap that stores arbitrary structs Using C language
Create 2 files: min_heap.c and min_heap.h
To create a min-heap that can sort *any datatype*, we'll utilize void* and function pointers. Heap* CreateHeap(void** data, int num_elems, int (*Compare)(void*, void*)) returns an empty heap H that is set up to store at most n elements. This operation takes O(N) time, as it involves initializing the array that will hold the heap. void Insert(Heap* heap, int val) inserts the int val into heap heap. If the heap currently has n elements, this takes O(log n) time. void* ExtractMin(Heap* heap) identifies and deletes an element with minimum value from a heap. void* Delete(Heap* heap, int position) deletes the element in heap position i. This is implemented in O(log n) time for heaps that have n elements. void BubbleUp(Heap* heap, int index) bubbles the element at location index up to its correct position. void BubbleDown (Heap* heap, int index) bubbles the element at location index down to its correct position. void Swap (Heap* heap, int first_ind, int second_ind) swaps the elements located at first_ind and second_ind in the heap. DestroyHeap (Heap* heap) frees all resources associated with heap heap.
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
