Which data structure is most suitable for implementing a priority queue where elements need to be accessed and removed based on their priority?
Correct: C
A heap (specifically a min-heap or max-heap) is the most efficient data structure for implementing a priority queue. It allows for efficient insertion (O(log n)) and removal of the element with the highest (or lowest) priority (O(log n)). Other data structures such as a linked list would have O(n) removal. While a BST could work, a Heap is simpler and more effective.