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

来源:互联网 发布:编程temp是什么意思 编辑:程序博客网 时间:2024/05/16 00:44

【题目】【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。

阅读全文
1 0
原创粉丝点击