class PrioQue: # 定义一个优先队列类
def __init__(self, lst=[]):
self.elems = sorted(lst)
def enqueue(self, e): # 插入元素
i = len(self.elems) - 1
while i >= 0:
if self.elems[i] <= e:
i -= 1
else:
break
self.elems.insert(i+1, e)
def is_empty(self): # 判空
return len(self.elems) == 0
def peek(self): # 查看
if self.is_empty():
raise PrioQueueError("in top")
return self.elems[len(self.elems)-1]
def dequeue(self):
if self.is_empty():
raise PrioQueueError("in top")
return self.elems.pop()
class PrioQueueError(ValueError): # 定义一个异常类
pass
优先队列的连续表实现(python语言)
最新推荐文章于 2022-02-14 20:00:12 发布