A binary heap is a useful data structure if you have a collection of objects to which you are adding random objects and need to remove the object with the highest (or lowest, or the extreme of some other ordering) value. You could use a dynamic array or a list, but then you'll have to compare all the elements each time you want to find the biggest one.