赞
踩
在Python中,heapq模块是实现最小堆的模块。
堆是非线性的树形数据结构,有两种堆,即最大堆与最小堆。
最大堆,指的是树的各个父节点的值,总是大于或者等于任何一个子节点的值。
最小堆,指的是树的各个父节点的值,总是小于或者等于任何一个子节点的值。因此整个最小堆的最小元素总是位于树的根节点。
在Python提供的heapq模块中,堆数据结构最重要的特征是heap[0]永远是最小的元素。
在heapq模块中,模块提供的方法如下:
方法原型 | 方法解析 |
---|---|
heapq.heappush(heap,item) | 将元素item推送至堆heap中 |
heapq.heappop(heap) | 从堆中弹出最小元素,如果堆是空,则IndexError,获取最小元素而不弹出元素,可使用heap[0]。函数返回堆中最小元素。 |
heapq.heappushpop(heap,item) | 将元素item推送至堆heap中,然后从堆中弹出最小元素。函数返回最小元素。 |
heapq.heapify(x) | 将列表x转换为堆,即创建堆 |
heapq.heapreplace(heap,item) | 弹出堆中的最小元素,然后将元素item推送至堆中,如果堆是空,则IndexError。函数返回堆中最小元素 |
heapq.merge(*iterables,key=None,re |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。