堆是一个二叉树,其中每个父节点的值都小于或等于其所有子节点的值。整个堆的最小元素总是位于二叉树的根节点。python的heapq模块提供了对堆的支持。 堆数据结构最重要的特征是heap[0]永远是最小的元素
heapq.heappush(heap,item)
注:heap为定义堆,item增加的元素
heapq.heapify(list)
注:将列表转换为堆
heapq.heappop(heap)
注:删除最小值,因为堆的特征是heap[0]永远是最小的元素,所以一般都是删除第一个元素。
heapq.heapreplace(heap.item)
注:删除最小元素值,添加新的元素值
heapq.heapreplace(heap,item)
注:首先判断添加元素值与堆的第一个元素值对比,如果大,则删除第一个元素,然后添加新的元素值,购置不更改堆