Why not one of the priority queue style data structures?