python数据结构学习笔记-2016-11-05-02-优先级队列

        8.3 优先级队列

        8.3.1 优先级队列ADT

        优先级队列:每次从队列中取出的应该是具有最高优先权的元素,这种队列称为优先级队列(priority queue)。

        优先级队列根据优先级的有界与否,分为两种类型:有界优先级队列和无界优先级队列。

        有界优先级队列(bounded priority queue)的优先权p在一定的范围内,比如说[0, p)内的整数。而无界级优先队列(unbounded priority queue)对优先权p并无要求。

        优先级队列ADT应具有如下属性:

  • PriorityQueue():创建空的无界优先级队列;
  • BPriorityQueue(numLevels):创建空的有界优先级队列,优先权为[0, numLevels)的整数;
  • isEmpty():判断优先级队列是否为空;
  • length():返回优先级队列的长度;
  • enqueue(item, priority):将优先权为priority的元素item添加到优先级队列中;
  • dequeue():删除队列中优先权最高,排在最前面的元素。
        8.3.2 实现无界级优先队列

  • 每一个元素都有一个优先权;
  • 要删除的元素的优先级必须是当前队列中最高的;
  • 如果有多个元素具有相同的优先权,则遵循普通队列的先进先出的原则,即FIFO。
        基于python列表的实现

        元素的值以及其优先权都储存在一个储

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值