Three PriorityQueue implementations from scratch