Before we begin, we need to detail a few characteristics our heap structure will possess. For starters, we are going to implement the heap using an array, and the first node will occupy the
0 index in this array. This decision is important because it affects the formula we use to calculate each node's parent and Children. Next, we will need an object to represent the nodes in our heap. Since this is going to be a very simple object for our demonstration, we'll define its class in-line with our heap implementation.
Since this is a min heap, we will only need to implement the
min operations. Therefore, our implementation must expose methods for
ExtractMin (pop), and
DeleteMin. The heap's Insert, Count, Children ...