Removing the minimum value (min heap) or the maximum value (max heap) consists of removing the element located at the first index of the array (the root of the heap). After the removal, we move the last element of the heap to the root and then we perform the function called siftDown, meaning we will swap elements until the heap is organized again. The sift down operation is also called sink down, percolate down, bubble down, heapify down, or cascade down.
The code is presented as follows:
extract() { if (this.isEmpty()) { return undefined; // {1} } if (this.size() === 1) { return this.heap.shift(); // {2} } const removedValue = this.heap.shift(); // {3} this.siftDown(0); // {4} return ...