Removes all elements from the queue
Returns true if the queue is empty, false otherwise
Returns the element at the top of the queue, without removing it from the queue
Removes and returns the element at the top of the queue
Adds one or more elements to the queue
The elements to add to the queue
The new size of the queue
Returns the number of elements in the queue
Priority queue implementation using a binary heap