【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/FX677588/article/details/77964912

【题目】【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是()。
 A、【2、1、4、3、9、5、8、6、7】
 B、【1、2、5、4、3、9、8、6、7】
 C、【2、3、1、4、7、9、5、8、6】
 D、【1、2、5、4、3、9、7、8、6】
分析:
  删除堆顶,然后总是从堆尾将某个数先放置到堆顶,然后依次下调到符合完全二叉树的要求,即每个子树的两个子节点都比父节点大(最小堆)。过程如下图所示:

这里写图片描述
这里写图片描述
这里写图片描述

  需要注意例如第三张图中,2和1在与7比较的时候,2和1先比较一次,哪个小再与7比较,如果比7小则互换,如果比7大则无需转换。

  所以最终答案是D。

展开阅读全文

没有更多推荐了,返回首页