# encoding: utf=8
class
deque
(object):
"""雙端佇列"""
def__init__
(self)
: self._list =
defis_empty
(self)
:"""判斷乙個佇列是否為空"""
return self._list ==
defsize
(self)
:"""返回佇列的大小"""
return
len(self._list)
defadd_ront
(self, item)
:"""往佇列頭部新增乙個item元素"""
self._list.insert(
0, item)
defadd_rear
(self, item)
:"""往佇列尾部新增乙個item元素"""
defremove_front
(self)
:"""從佇列頭部刪除乙個元素"""
return self._list.pop(0)
defremove_rear
(self)
:"""從佇列尾部刪除乙個元素"""
return self._list.pop(
)if __name__ ==
'__main__'
: q = deque(
) q.enqueue(1)
q.enqueue(2)
q.enqueue(3)
q.enqueue(4)
print
(q.dequeue())
print
(q.dequeue())
print
(q.dequeue())
print
(q.dequeue())
# 1 2 3 4
佇列 雙端佇列
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,模型上一般為右進左出,右端入隊並稱為隊尾,左端出隊並稱為隊頭...