Heap-based Priority Queue