最小堆 0,3,2,5,7,4,6,8,在删除堆顶元素 0 之后,其结果是( )

admin2022-08-02  42

问题 最小堆 0,3,2,5,7,4,6,8,在删除堆顶元素 0 之后,其结果是( )。A.3,2,5,7,4,6,8  B.2,3,5,7,4,6,8C.2,3,4,5,7,8,6  D.2,3,4,5,6,7,8

选项 A.3,2,5,7,4,6,8  
B.2,3,5,7,4,6,8
C.2,3,4,5,7,8,6  
D.2,3,4,5,6,7,8

答案 C

解析 根据堆的删除规则,删除操作只能在堆顶进行,也就是删除 0元素。然后让最后一个节点放在堆顶,做向下调整工作,让剩下的数组依然满足最小堆。删除 0 后用 8 填充 0 的位置,为[8,3,2,5,7,4,6],然后 8 和其子节点 3,2 比较,结果 2 最小,将 2 和 8 交换,为[2,3,8,5,7,4,6],然后 8 的下标为 2,其两个孩子节点下标分别为 2*2+1=5,2*2+2=6,也就是 4 和 6 两个元素,经比较,4 最小,将 8与 4 交换,为[2,3,4,5,7,8,6],这时候 8 已经没有孩子节点了,调整完成。
转载请注明原文地址:https://tihaiku.com/gongwuyuan/2556785.html

最新回复(0)