Python利用heapq实现一个优先级队列的方法

  

实现一个优先级队列,每次流行的元素要是优先级高的元素,由于heapq.heapify(列表)默认构建一个小顶堆,因此要将优先级变为相反数再推,代码如下:

        进口heapq   PriorityQueue类(对象):   ”““实现一个优先级队列,每次流行优先级最高的元素”“   def __init__(自我):   自我。_queue=[]   自我。_index=0   def推(自我、项目、优先级):   heapq.heappush (self._queue(优先级、self._index、项目))#将优先级和索引结合使用,在优先级相同的时候比较指数,流行先进入队列的元素   自我。_index +=1   def流行(自我):   返回heapq.heappop (self._queue) [1]   if __name__==癬_main__”:   PriorityQueue pqueue=()   pqueue.push (' d ', 4)   pqueue.push (“f”, 3)   pqueue.push (' a ', 6)   pqueue.push (' s ', 2)   print (pqueue.pop ())   print (pqueue.pop ())   print (pqueue.pop ())      

 Python利用heapq实现一个优先级队列的方法

  

以上这篇Python利用heapq实现一个优先级队列的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

Python利用heapq实现一个优先级队列的方法