一个队列至少满足2个方法,put和get.

借助最小堆来实现.

这里按"值越大优先级越高"的顺序.

#coding=utf-8
from heapq import heappush, heappop
class PriorityQueue:
def __init__(self):
self._queue = [] def put(self, item, priority):
heappush(self._queue, (-priority, item)) def get(self):
return heappop(self._queue)[-1] q = PriorityQueue()
q.put('world', 1)
q.put('hello', 2)
print q.get()
print q.get()

最新文章

  1. C#-WebForm-纯HTML提交方式
  2. shell下批量重命名svn文件的方法
  3. NHibernate可视化设计插件——Mindscape.NHibernateModelDesigner
  4. 软件工程实践小队--团队项目NABC
  5. VMware系统运维(七)vCenter Inventory Server安装
  6. <四> SQL存储过程
  7. css为网页顶部和底部都加入背景图
  8. 解决centos7安装wmwaretools找不到kernel header
  9. MyEclipse中spring MVC的配置
  10. cocos2dx lua
  11. [CLR via C#]5.1 基元类型
  12. iOS 图片裁剪方法
  13. 摘记:Web应用系统测试内容
  14. 对象反序列化时,抛出java.io.StreamCorruptedException: invalid type code: AC异常
  15. dmidecode的Python解析
  16. mysql 导入数据库问题
  17. SecureCRT显示乱码的解决办法
  18. openVPN之Luci及tap模式
  19. C# WebClient进行FTP服务上传文件和下载文件
  20. jquery mobile各类组件刷新方法

热门文章

  1. debug时红点消失
  2. fcc jQuery 练习
  3. JS——void(0)
  4. 如何快速获取yun2win app key?
  5. Java 基础入门随笔(2) JavaSE版——关键字、进制转换、类型转换
  6. nginx-配置反向代理实例
  7. 011--c数组--排序--组成最大数
  8. 关于在win7旗舰版32位上 安装 net4.0 的闪退问题研究 和安装sqlserver2008问题
  9. 名词解释http隧道、https、SSL层、http代理、在线代理、socks代理区别
  10. CAD保存高版本的dwg(com接口)