python实现栈和队列(Python利用heapq实现一个优先级队列的方法)
类别:脚本大全 浏览量:2573
时间:2022-04-01 01:17:39 python实现栈和队列
Python利用heapq实现一个优先级队列的方法实现一个优先级队列,每次pop的元素要是优先级高的元素,由于heapq.heapify(list)默认构建一个小顶堆,因此要将priority变为相反数再push,代码如下:
|
import heapq class priorityqueue( object ): """实现一个优先级队列,每次pop优先级最高的元素""" def __init__( self ): self ._queue = [] self ._index = 0 def push( self ,item,priority): heapq.heappush( self ._queue,( - priority, self ._index,item)) #将priority和index结合使用,在priority相同的时候比较index,pop先进入队列的元素 self ._index + = 1 def pop( self ): return heapq.heappop( self ._queue)[ - 1 ] if __name__ = = '__main__' : pqueue = priorityqueue() 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实现一个优先级队列的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/Jmiew123/article/details/68951054
您可能感兴趣
- laravel自定义使用方法(Laravel使用Queue队列的技巧汇总)
- php 创建定时任务(PHP扩展Swoole实现实时异步任务队列示例)
- laravel队列失败原理(Laravel第三方包报class not found的解决方法)
- phpredis消息队列(PHP+redis实现微博的推模型案例分析)
- laravel队列是如何触发的(laravel 事件/监听器实例代码)
- python 队列与列表(Python实现的栈、队列、文件目录遍历操作示例)
- laravel队列流程(Laravel 创建指定表 migrate的例子)
- php mq使用方法(PHP使用ActiveMQ实现消息队列的方法详解)
- laravel 队列导入数据(laravel框架查询数据集转为数组的两种方法)
- php redis配置(php+redis实现消息队列功能示例)
- python栈和队列(Python 实现数据结构中的栈队列)
- python怎么安装queue(python队列Queue的详解)
- php消息队列redis(redis+php实现微博二发布与关注功能详解)
- php队列的用法实例(PHP实现一个限制实例化次数的类示例)
- axios 请求前校验参数(js实现axios限制请求队列)
- asp.net 消息队列
- 二次创业 的富士胶片,在进博会上首次展示完成转型后的全线医疗产品(二次创业的富士胶片)
- 富士胶片 中国 我们对上海的信心没有任何改变(富士胶片中国)
- 赢麻了 富士公布2021年度财报 营利同比增长240(富士公布2021年度财报)
- 医事文化谈屑 | 古人的名 字 号(医事文化谈屑古人的名)
- ()
- 网友很惭愧,自己写了很多年的字,到头来还不如一名小学生写的好(自己写了很多年的字)