Double ended queue mengunakan deque
Class deque
di modul collections
dapat mempermudah kita membuat double ended queue
di Python. Double ended queue
adalah queue yang memungkinkan kita untuk menambah atau mengurangi elemen dari kanan ataupun dari kiri, dan class deque
memungkinkan kita melakukannya dengan efisien.
Mari kita import modulnya terlebih dahulu
from collections import deque
Instansiasi kelas deque
d = deque()
Menambahkan elemen dari kanan dan kiri
d.append("b")
d.appendleft("a")
print(d)
# keluarannya adalah: deque(['a', 'b'])
Dengan cara yang sama, elemen dapat dihapus dari kanan dan kiri
d.pop()
d.popleft()
print(d)
# keluaran: deque([])
Sejak Python 2.6, kamu dapat membatasi jumlah elemen dalam deque
dengan menggunakan argumen maxlen
saat instansiasi. Jika limitnya telah terlewati, elemen dari sisi lain akan dihapus ketika menambahkan elemen baru.
d = deque(maxlen=3)
deque([], maxlen=3)
for i in range(4):
d.append(i)
print(d)
...
# keluaran:
deque([0], maxlen=3)
deque([0, 1], maxlen=3)
deque([0, 1, 2], maxlen=3)
deque([1, 2, 3], maxlen=3) # elemen '3' masuk dari sisi kanan, elemen paling kiri yakni '0' akan terhapus
Disadur dari sini