Python雙端佇列

2021-08-21 20:14:44 字數 793 閱讀 2203

這個雙端佇列,我覺得只是對python可迭代物件的乙個擴充套件。

如果想要對可迭代物件有更好的操作,可以使用這個類

匯入

from collections import deque
建立物件

不初始化佇列

dq = deque(可迭代物件,佇列長度)
初始化佇列

dq = deque(可迭代物件,佇列長度)
此佇列可以使用任何列表的操作,只要列表可以的操作,此佇列都可以使用

from collections import deque

dq = deque([1,2,3,4,5])

res = dq.pop()

print(res)

res = dq.popleft()

print(res)

結果: 5

1

由此得到,預設的pop是從右往左的。

rotate方法
from collections import deque

dq = deque([1,2,3,4,5])

dq.rotate(3)

res = list(map(lambda x:x, dq))

print(res)

結果:[3, 4, 5, 1, 2]

由此可見,rotate方法設定3,將會把佇列最後乙個元素依次移動到佇列的第一位

其他方法於列表操作一樣,這裡不再贅述

python實現雙端佇列

雙端佇列 一種具有佇列和棧的性質和資料結構 雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作,在表的兩端進行,雙端佇列可以在佇列任意一端入隊和出隊 class deque 雙端佇列 def init self self.list def add front self,item 往佇列中新增乙個i...

佇列 雙端佇列

1.佇列 佇列是遵循先進先出 fifo,也稱為先來先服務 原則的一組有序的項。佇列在尾部新增新 元素,並從頂部移除元素。最新新增的元素必須排在佇列的末尾 class queue 向佇列新增元素 enqueue element 檢查佇列是否為空並獲取它的長度 isempty 從佇列移除元素 deque...

python實現佇列和雙端佇列

對於佇列而言,總有一端的複雜度是o n 一端是o 1 我們可以根據是取的多還是入的多調整方法。class queue object 佇列 def init self self.items def is empty self return self.items def enqueue self,ite...