Implement PriorityQueue using heap