COMPARE FUNCTIONS Q: Where do the compare functions and delete functions come from? A: Whoever calls your code must provide those functions. - Since your test_priority_queue. will call your code, then it you must provide compare/delete functions in your test_priority_queue.c. WARNING: compare/delete functions go in your test file, not in priority_queue.c. Destroy function frees whatever the node refers to, only if needed. - If you have a linked list of strings on the heap and you want the strings to be freed whenever you destroy the list, you would pass a destroy function that just calls free(node -> a_value) or something like that. If you don't need the stuff to be freed, you pass an empty destroy function.