拿下技术面上传简历

有一个小顶堆,用数组存储为 [3, 8, 10, 15, 20, 18, 12]。现在执行一次 pop(取出堆顶元素)。请写出取出堆顶后堆的调整过程,并给出调整后的数组。要求说明:小顶堆的堆序性质是什么?调整时每次和哪个孩子交换?为什么?

数据结构与算法线性与树结构校招知识点 1 个

面试官在考什么

判断候选人是否真正手动模拟过堆的 sift down 过程,理解堆序性质和数组存储下父子下标关系。

堆与优先队列

回答框架 · 前两步

  1. 小顶堆:父节点 ≤ 子节点;堆是完全二叉树,数组存储下标 i 的左孩子 2i+1、右孩子 2i+2(从 0 开始)。
  2. pop:取走堆顶 3,把最后一个元素 12 放到堆顶,堆大小减一,得到 [12,8,10,15,20,18]。

还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。

上传简历,生成我的题库先看示例报告

延伸阅读

想看这个方向的整体准备路线? 进入「数据结构与算法」方向页

同一能力域的其他题