Materi
Antrean (queue) adalah struktur yang ditambah di belakang dan diambil dari depan. Data yang pertama masuk adalah data pertama yang keluar, disingkat FIFO. Antrean dipakai di mana pun urutan kedatangan harus dihormati: pekerjaan cetak, pesanan masuk, pesan yang menunggu dikirim, dan penelusuran graf melebar di modul 4.
List Python tampak bisa dipakai sebagai antrean dengan append() dan pop(0), tetapi tutorial Python menyebut cara itu lambat. List menyimpan datanya berderet di memori, sehingga mengambil data paling depan memaksa semua data sisanya bergeser satu posisi. Pada antrean berisi n data, setiap pop(0) butuh sekitar n langkah, dan menghabiskan antrean butuh sekitar n² langkah.
collections.deque dirancang untuk kedua ujung. append() menambah di kanan dan popleft() mengambil di kiri, keduanya dengan biaya tetap berapa pun panjangnya. deque juga menerima maxlen: bila penuh, menambah di satu ujung otomatis membuang data di ujung lainnya, sehingga cocok untuk menyimpan n kejadian terakhir atau menghitung rata-rata bergerak.
from collections import deque
cetak = deque(["surat.pdf", "faktur.pdf"])
cetak.append("memo.pdf") # masuk di belakang
berikut = cetak.popleft() # "surat.pdf" keluar dari depan
terakhir = deque(maxlen=3)
for suhu in [29, 30, 31, 33]:
terakhir.append(suhu)
print(list(terakhir)) # [30, 31, 33]