堆中入队只能添加到最后一个?出队只能从根节点移除?
来源:4-4 Shift Down
释然小师弟
2019-02-22
如题,是这样吗?
写回答
1回答
-
可能我没有太理解你的问题。
入堆过程是先把新元素放到堆的最后位置,之后再进行调整,把这个新元素调整到满足堆性质的正确位置;新元素最终的位置不一定在堆的最后。
出堆过程,是的,只能从根节点移除。这是因为出堆的一定是当前堆中的最大元素(以最大堆为例),只有一个。这个最大元素一定在根节点(根据堆的性质)。但是,移除这个元素之后,为了维护堆的性质,还需要对堆中其他元素进行调整:)
继续加油!:)
012019-02-23
相似问题