python实现优先队列

转载博文:https://blog.csdn.net/qq_34840129/article/details/80846838
cmp用法转载:https://www.yangyanxing.com/article/priorityqueue_in_python.html

from heapq import *
class CompareAble:
    def __init__(self,priority,jobname):
        self.priority = priority
        self.jobname = jobname

    def __lt__(self, other):
        if self.priority <= other.priority:
            return False
        else:
            return True


heap = []
a = CompareAble(80,"age")
heappush(heap,a)
b= CompareAble(90,"aage")
heappush(heap,b)
heappush(heap, CompareAble(1,"kk"))
print(heap.pop().priority)
print(heap.pop().priority)
#print(heap[2].priority)


import heapq

# 使用heapq实现优先队列
#定义一个可比较对象
class CompareAble:
    def __init__(self,priority,jobname):
        self.priority = priority
        self.jobname = jobname

    def __lt__(self, other):
        if self.priority <= other.priority:
            return False
        else:
            return True


joblist = []

heapq.heappush(joblist,CompareAble(80,'eat'))
heapq.heappush(joblist,CompareAble(70,'a write plan2'))
heapq.heappush(joblist,CompareAble(30,'write plan'))
heapq.heappush(joblist,CompareAble(110,'sleep'))
heapq.heappush(joblist,CompareAble(100,'write code'))

while joblist:
    task = heapq.heappop(joblist)
    print(task.priority,task.jobname)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值