堆是一个二叉树,其中每个父节点的值都小于或等于其所有子节点的值。整个堆的最小元素总是位于二叉树的根节点。python的heapq模块提供了对堆的支持。 堆数据结构最重要的特征是heap[0]永远是最小的元素

 

heapq.heappush(heap,item) 
注:heap为定义堆,item增加的元素

python heapq 堆

heapq.heapify(list) 
注:将列表转换为堆

python heapq 堆

heapq.heappop(heap) 
注:删除最小值,因为堆的特征是heap[0]永远是最小的元素,所以一般都是删除第一个元素。

python heapq 堆

heapq.heapreplace(heap.item) 
注:删除最小元素值,添加新的元素值

python heapq 堆

heapq.heapreplace(heap,item) 
注:首先判断添加元素值与堆的第一个元素值对比,如果大,则删除第一个元素,然后添加新的元素值,购置不更改堆

python heapq 堆

python heapq 堆

相关文章: