Insert values to sift up, extract the maximum to sift down, and build a heap from an array. Watch the dual tree + array representation update in sync.