首页 > 编程语言 > 详细

飘逸的python - 实现一个极简的优先队列

时间:2014-10-14 12:49:39      阅读:301      评论:0      收藏:0      [点我收藏+]

一个队列至少满足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()


飘逸的python - 实现一个极简的优先队列

原文:http://blog.csdn.net/handsomekang/article/details/40073581

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!