数据结构 顺序表实现优先队列 回顾练习

 1 #!/usr/bin/env python
 2 
 3 class QueueUnderflow(ValueError):
 4         pass
 5 
 6 class PrioQue(object):
 7         def __init__(self, elems=[]):
 8                 #list can be change locally, so list it
 9                 self.elems = list(elems)
10                 self.elems.sort(reverse=True)
11 
12         def is_empty(self):
13                 return self.elems == None
14 
15         def peek(self):
16                 if self.is_empty():
17                         raise QueueUnderflow
18                 return self.elems[-1]
19 
20         def dequeue(self):
21                 if self.is_empty():
22                         raise QueueUnderflow
23                 return self.elems.pop()
24 
25         def enqueue(self, elem):
26                 i = len(self.elems) - 1
27                 while i>=0:
28                         if self.elems[i] <= elem:
29                                 i -= 1
30                         else:
31                                 break
32                 self.elems.insert(i+1, elem)
33 
34 if __name__ == '__main__':
35         pq = PrioQue(elems=[6,4,3,8,5,1,2,0,9])
36         print(pq.elems)
37         pq.enqueue(7)
38         print(pq.elems)

 

转载于:https://www.cnblogs.com/xautxuqiang/p/6418868.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值