Implements Queue.
Presents heap data structure on FIFO.
Its elements may not be sorted, but returned in sorted order.
In ascending return order, the head of the queue will be always the smallest element.
In case the head is not removed, the rest of the queue follow their original order.
EXAMPLE FOR ASCENDING ORDERED QUEUE:
EXAMPLE FOR CUSTOM ORDERED QUEUE: