Python-简单优先队列
生活随笔
收集整理的這篇文章主要介紹了
Python-简单优先队列
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
class PrioQue(object):#elist=[]做參數很危險def __init__(self,elist=[]):self._elems = list(elist)#元素從大到小排序,最后為隊首self._elems.sort(reverse = True)def enqueue(self,e):# i為下標最大值,即元素個數減去1i = len(self._elems) - 1while i >=0:if self._elems[i] <= e:i = i -1 else:breakself._elems.insert(i+1,e)def is_empty(self):return not self._elemsdef peek(self):if self.is_empty():print('empty')return self._elems[-1]def dequeue(self):if self.is_empty():print('empty')#刪除列表中最后一個元素,也就是隊首return self._elems.pop()p = PrioQue([2,6,9,3,1])
print("隊列是否為空:",p.is_empty())
print('隊列中所有元素為:',p._elems)
print("出隊元素為:",p.dequeue())
print('出隊之后元素為:',p._elems)
p.enqueue(5)
print("隊首元素為:",p.peek())
print('進出隊之后元素為:',p._elems)
說一下列表的insert()方法,與列表extend()追加方法和python append不同,insert()方法是可以將要添加的對象,插入到指定的位置中。
以下是insert()方法的語法:
參數
1. index – 這是要插入對象obj必要的索引
2. obj – 這是將被插入到給定的列表中的對象
插入的位置是在索引位置,之后所有的元素自動后移
總結
以上是生活随笔為你收集整理的Python-简单优先队列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flask实战2问答平台-发布问答功能完
- 下一篇: 几个Python运算符