我是否正确地对此 max-heap 执行了 extract max 操作?

Did I correctly perform extract max operation on this max-heap?

我正在尝试了解堆的工作原理。

我有以下堆:

现在我想提取最大值。

我做的第一件事是删除根42,然后将堆(6) 中的最后一个元素放在根位置。然后我执行 max-heapify 来找到 6 的正确位置。

6 i 比它的两个 children 大,所以我把它和最大的 child 41 交换,使 41 成为新的根。

6 现在有 children 3 和 9,因此我再次将它换成更大的 child 9

最后我得到了堆

我是否正确执行了 extract-max?

是的! Extract max 工作 recursively.find 三者中最大的元素,即父元素和它们中的两个 children.If 最大元素不是父元素 将最大元素交换到父元素并调用 extract max to largest.