soft heap — variant on the simple heap data structure that has constant amortized time for 5 types of operations