4. What is a heap? Explain how to implement a priority queue using heaps. (10%)