Python基础教程之十九:Python优先级队列示例

编程入门 行业动态 更新时间:2024-10-26 16:26:09

Python基础教程之十九:Python<a href=https://www.elefans.com/category/jswz/34/1769954.html style=优先级队列示例"/>

Python基础教程之十九:Python优先级队列示例

1.什么是优先队列

  • 优先级队列是一种抽象数据类型,类似于常规队列或堆栈数据结构,但每个元素还具有与之关联的“优先级”。
  • 在优先级队列中,优先级高的元素先于优先级低的元素提供。
  • 如果两个元素具有相同的优先级,则将根据其在队列中的顺序为其提供服务。

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

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

PriorityQueue.pyimport heapqclass PriorityQueue:def __init__(self):self._queue = []self._index = 0def push(self, item, priority):heapq.heappush(self._queue, (-priority, self._index, item))self._index += 1def pop(self):return heapq.heappop(self._queue)[-1]

3. Python优先级队列示例

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

example.pyclass Item:def __init__(self, name):self.name = namedef __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

祝:学习愉快、工作顺利!

关注公众号「码农园区」,获取程序员大礼包

 

更多推荐

Python基础教程之十九:Python优先级队列示例

本文发布于:2023-11-15 15:16:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1601826.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:优先级   队列   示例   基础教程   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!