首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我在这个最大堆上正确地执行了最大解压缩操作吗?

我在这个最大堆上正确地执行了最大解压缩操作吗?
EN

Stack Overflow用户
提问于 2019-04-01 07:27:24
回答 1查看 1.7K关注 0票数 0

我想弄清楚堆是怎么工作的。

我有以下堆:

现在我要提取最大值。

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

我比它的两个孩子大,所以我把它和最大的41交换,使41成为新的根。

现在有了3和9的孩子,所以我再一次把它和更大的孩子9交换。

最后,我得到了这个堆

我做得对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-01 08:05:05

是!Extract工作recursively.find --在三个父元素中最大的一个元素,也就是它们的两个最大的children.If元素,不是父交换最大的元素,而是最大的父元素,调用提取最大到最大的元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55449986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档