zoukankan      html  css  js  c++  java
  • 实现优先级队列

    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]
    class Item:
        def __init__(self,name):
            self.name=name
        def __repr__(self):
            return 'Item({!r})'.format(self.name)
    
    q=PriorityQueue()
    q.push(Item('AAA'),1)
    q.push(Item('BBB'),4)
    q.push(Item('CCC'),5)
    q.push(Item('DDD'),1)
    print(q.pop())
    print(q.pop())
    print(q.pop())

  • 相关阅读:
    CF1208C
    CF1208B
    CF1208A
    CF1206A
    wqy的C题
    wqy的B题
    [POI2005]SAM-Toy Cars
    Gym
    操作系统学习---进程
    C++多线程(POSIX)
  • 原文地址:https://www.cnblogs.com/hany-postq473111315/p/12819475.html
Copyright © 2011-2022 走看看