Python优先级队列示例(python实现优先队列)

网友投稿 567 2022-06-24


1.什么是优先队列

优先级队列是一种抽象数据类型,类似于常规队列或堆栈数据结构,但每个元素还具有与之关联的“优先级”。

在优先级队列中,优先级高的元素先于优先级低的元素提供。

如果两个元素具有相同的优先级,则将根据其在队列中的顺序为其提供服务。

2. Python中的优先级队列实现

以下python程序使用该heapq模块实现简单的优先级队列:

PriorityQueue.py

import heapq

class PriorityQueue:

def __init__(self):

self._queue = []

self._index = 0

def push(self, item, priority):

heapq.heappush(self._queue, (-priority, self._index, item))

self._index += 1

def pop(self):

return heapq.heappop(self._queue)[-1]

3. Python优先级队列示例

让我们看一个如何使用上面创建的优先级队列的例子。

example.py

class Item:

def __init__(self, name):

self.name = name

def __repr__(self):

return 'Item({!r})'.format(self.name)

>>> q = PriorityQueue()

>>> q.push(Item('how'), 1)

>>> q.push(Item('to'), 5)

>>> q.push(Item('do'), 4)

>>> q.push(Item('in'), 2)

>>> q.push(Item('java'), 1)

>>> q.pop()

Item('to') #5

>>> q.pop()

Item('do') #4

>>> q.pop()

Item('in') #2

>>> q.pop()

Item('how') #1

>>> q.pop()

Item('java') #1

学习愉快!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C# 数据操作系列 - 8. EF Core的增删改查(曹海涛)
下一篇:Python字典交集–比较两个字典(在python中,字典和集合都是用一对什么作为界定符)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~