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
您可能感兴趣
- rabbitmq延迟队列原理(Rabbitmq heartbea心跳检测机制原理解析)
- laravel 队列导入数据(laravel框架查询数据集转为数组的两种方法)
- laravel队列过期时间(laravel 修改记住我功能的cookie保存时间的方法)
- php mq使用方法(PHP使用ActiveMQ实现消息队列的方法详解)
- laravel队列流程(Laravel 创建指定表 migrate的例子)
- laravel队列失败原理(Laravel第三方包报class not found的解决方法)
- python中怎么实现队列的创建(python 堆和优先队列的使用详解)
- phpredis消息队列(PHP+redis实现微博的推模型案例分析)
- node中如何用import(分析node事件循环和消息队列)
- php队列的用法实例(PHP实现一个限制实例化次数的类示例)
- asp.net 消息队列
- python栈和队列(Python 实现数据结构中的栈队列)
- php 创建定时任务(PHP扩展Swoole实现实时异步任务队列示例)
- python 队列与列表(Python实现的栈、队列、文件目录遍历操作示例)
- python线程安全队列(Python 限制线程的最大数量的方法Semaphore)
- php实现redis消息队列(redis+php实现微博三微博列表功能详解)
- 九月初,爱如蜜糖,甜到心扉,迷恋彼此,一日不见兮,思之若狂(九月初爱如蜜糖)
- ()
- 对你思念入骨的女人,跟你见面时会有这几种表现,藏都藏不住(对你思念入骨的女人)
- 纳兰性德绝美作,一场重逢,成就最后一首称得上惊艳的《如梦令》(纳兰性德绝美作)
- 如何快速赚钱(如何快速赚钱方法真实有效)
- 这里输入关键词(如何输入关键词)
热门推荐
- 微信小程序css使用技巧(微信小程序 CSS filter滤镜的使用示例详解)
- docker配置私有仓库(docker私有库的搭建实现)
- 远程给docker容器执行命令(Docker命令让普通用户能够执行的实现)
- nginx中https配置(Nginx配置同一个域名同时支持http与https两种方式访问实现)
- 宝塔linux面板部署防火墙后网页打不开报http564错误的解决办法(宝塔linux面板部署防火墙后网页打不开报http564错误的解决办法)
- poll?transport=longpoll&connection...连接的作用
- java怎么调用支付宝的扫码支付(python实现银联支付和支付宝支付接入)
- tomcat的startup闪退的原因(直接双击启动tomcat中的startup.bat闪退原因及解决方法)
- laravel使用教程(基于Laravel5.4版本的基本增删改查操作方法)
- linux内核打印pc的值(linux内核copy_{to, from}_user的思考)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9