网站建设51cto,网站建设教论坛,做门户网站服务器选择,网站要做手机版怎么做的1.什么是优先队列
优先级队列是一种抽象数据类型#xff0c;类似于常规队列或堆栈数据结构#xff0c;但每个元素还具有与之关联的“优先级”。在优先级队列中#xff0c;优先级高的元素先于优先级低的元素提供。如果两个元素具有相同的优先级#xff0c;则将根据其在队列…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
祝学习愉快、工作顺利
关注公众号「码农园区」获取程序员大礼包