It is a common misconception that a priority queue is a heap. A priority queue is an abstract concept like a list or a map, just as a list can be implemented with a linked list or an array, a priority queue can be implemented with a heap or a variety of other methods.