13 雙端佇列

2021-09-26 08:21:05 字數 1203 閱讀 2306

雙端佇列(deque,全名double-ended queue),是一種具有佇列和棧的性質的資料結構。

雙端佇列中的元素可以從兩端彈出,其限定插入和刪除操作在表的兩端進行。雙端佇列可以在佇列任意一端入隊和出隊。

"""雙端佇列"""

def__init__

(self)

: self.items =

defis_empty

(self)

:"""判斷佇列是否為空"""

return self.items ==

defadd_front

(self, item)

:"""在隊頭新增元素"""

self.items.insert(

0,item)

defadd_rear

(self, item)

:"""在隊尾新增元素"""

defremove_front

(self)

:"""從隊頭刪除元素"""

return self.items.pop(0)

defremove_rear

(self)

:"""從隊尾刪除元素"""

return self.items.pop(

)def

size

(self)

:"""返回佇列大小"""

return

len(self.items)

if __name__ ==

"__main__"

: deque = deque(

) deque.add_front(1)

deque.add_front(2)

deque.add_rear(3)

deque.add_rear(4)

print deque.size(

)print deque.remove_front(

)print deque.remove_front(

)print deque.remove_rear(

)print deque.remove_rear(

)

佇列 雙端佇列

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

雙端佇列 Acwing 134 雙端佇列

達達現在碰到了乙個棘手的問題,有n個整數需要排序。達達手頭能用的工具就是若干個雙端佇列。她從1到n需要依次處理這n個數,對於每個數,達達能做以下兩件事 1 新建乙個雙端佇列,並將當前數作為這個佇列中的唯一的數 2 將當前數放入已有的佇列的頭之前或者尾之後。對所有的數處理完成之後,達達將這些佇列按一定...

佇列 , 雙端佇列, 棧

注意 linkedlist中新增或者取出的方法有很多,比如add,offer,offerfirst,offerlast,push.根據使用的資料結構不同,最好區分使用.一,佇列queue fifo first in first out 0,模型上一般為右進左出,右端入隊並稱為隊尾,左端出隊並稱為隊頭...