文件名称:实现一个优先级队列-python cookbook(第3版)高清中文完整版
文件大小:4.84MB
文件格式:PDF
更新时间:2024-06-29 23:05:46
python cookbook 第3版 高清 中文完整版
1.5 实现一个优先级队列 问题 怎样实现一个按优先级排序的队列? 并且在这个队列上面每次pop操作总是返回优先级 高的那个元素 解决方案 下面的类利用 heapq 模块实现了一个简单的优先级队列: import heapq class PriorityQueue: def __init__(self): self._queue = [] self._index = 0 def push(self, item, priority): heapq.heappush(self._queue, (-priority, self._index, item)) self._index += 1 def pop(self): return heapq.heappop(self._queue)[-1] 下面是它的使用方式: