【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
- 【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是
- 堆的数据结构能够使得堆顶总是维持最大(对于大根堆)或最小(对于小根堆),给定一个数组,对这个数组进行建堆,则平均复杂度是多少?如果只是用堆的 push 操作,则一个大根堆依次输入 3,7,2,4,1,5,8 后,得到的堆的结构示意图是下述图表中的哪个?
- C++实现最小堆及插入,调整顺序,删除堆顶元素的操作
- 堆顶元素的获取与删除
- 堆删除最小元素的操作思路
- 最小堆的删除
- 堆的创建域删除堆顶结点
- 最小堆操作(元素的添加和删除)
- 删除最小堆的最小值
- 堆的添加,删除元素
- 最小堆的数组实现
- 堆 堆元素的插入 最小堆 堆元素的移除
- 九、堆与优先队列---(3)输出堆中元素并获取和删除堆顶元素
- Java实现堆的封装,进行插入,调整,删除堆顶以完成堆排序实例
- 面试题8 求旋转后(3 4 5 1 2)的数组中的最小元素
- 最小堆的调整、插入和删除
- 最大最小堆的插入与删除
- 数据结构—堆的学习:堆化数组、堆的插入、堆的删除
- Linux:内核模块实现替换系统调用的简单例子
- ATOS Professional
- 字符串、double变量去除末尾的"."和"0"
- mysql having的用法
- Set和List的区别,List和Map的区别(介绍List,Set,Map对象结构
- 【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是
- form表单的两种提交方式,submit和button的用法
- CentOS Docker 安装
- iOS 之GCD串行和并发队列的理解
- es6 map
- 解决CentOS(6和7版本),/etc/sysconfig/下没有iptables的问题
- JAVA易混淆总结
- Python 高级编程--多线程编程(四)
- Centos 7 docker 启动容器 iptables 报 No chain/target/match by that name