Queue dan collections.deque
Menambahkan dan menghapus dari kedua ujung dengan cepat
Queue dan collections.deque adalah pelajaran Coding Interview Prep gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.
Masuk Pertama, Keluar Pertama
Antrean melayani elemen sesuai urutan kedatangannya, seperti antrean di toko. Elemen yang masuk pertama akan keluar pertama.
Mengapa Tidak Menggunakan Daftar
Daftar dapat mengeluarkan elemen dari depan, tetapi pop(0) memerlukan O(n) karena setiap elemen lainnya bergeser ke kiri. Cara ini terlalu lambat untuk masukan besar.
q = []
q.pop(0) # O(n), avoid thisGunakan collections.deque
Antrean dua ujung dari collections dapat menambahkan dan menghapus elemen dari kedua ujung dalam O(1). Inilah pilihan utama Anda dalam kompetisi pemrograman.
from collections import deque
q = deque()Masukkan di Belakang
Tambahkan elemen baru ke ujung kanan dengan append, persis seperti pada daftar. Bagian ini adalah belakang antrean.
q.append(1)
q.append(2)Keluarkan dari Depan
Hapus elemen tertua dari sebelah kiri dengan popleft, yang berjalan dalam waktu konstan dan memberikan perilaku FIFO yang sebenarnya.
first = q.popleft() # returns 1Kedua Ujung Terbuka
Antrean dua ujung juga mendukung appendleft dan pop dari sebelah kanan. Fleksibilitas ini memungkinkan satu struktur berperan sebagai tumpukan atau antrean.
q.appendleft(0)
last = q.pop()Periksa Sebelum Mengeluarkan
Menghapus elemen dari antrean dua ujung yang kosong akan menimbulkan kesalahan, jadi uji while q dalam iterasi agar penelusuran Anda tetap aman.
while q:
x = q.popleft()Antrean Mendukung BFS
Penggunaan yang paling umum dalam kompetisi adalah BFS. Anda memasukkan simpul awal ke antrean, lalu terus mengeluarkan elemen dari depan dan memasukkan tetangganya.
Kerangka Kecil BFS
Iterasi ini mengunjungi simpul lapis demi lapis. Setiap tetangga ditambahkan dan kemudian diproses sesuai urutan kedatangannya.
while q:
node = q.popleft()
for nb in graph[node]:
q.append(nb)Batasi Ukuran Antrean Dua Ujung
Memberikan maxlen membuat antrean dua ujung membuang elemen tertua saat penuh, sangat cocok untuk jendela geser dan pelacakan riwayat terbaru.
window = deque(maxlen=3)Satu Struktur, Banyak Peran
Ingat bahwa antrean dua ujung cepat di kedua ujung, jadi gunakan struktur ini setiap kali Anda memerlukan antrean, tumpukan, atau penyangga geser.
Pemeriksaan Singkat
Anda memerlukan penghapusan cepat dari bagian depan antrean. Pilihan mana yang tepat?
Ringkasan: Antrean Dua Ujung Adalah Antrean Cepat
Anda telah mengenal collections.deque: append dan popleft untuk FIFO O(1), kedua ujung yang terbuka, serta maxlen untuk jendela. Struktur ini menjadi tulang punggung BFS. 🎯
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Queue dan collections.deque” gratis?
Ya — teks lengkap “Queue dan collections.deque” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Coding Interview Prep, upgrade ke CoddyKit PRO. Kursus Coding Interview Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Queue dan collections.deque”?
Menambahkan dan menghapus dari kedua ujung dengan cepat Kamu berlatih Coding Interview Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Coding Interview Prep?
Tidak diperlukan pengalaman sebelumnya. Coding Interview Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Queue dan collections.deque” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Coding Interview Prep ini?
Ya. Setiap pelajaran Coding Interview Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Stack untuk Mencocokkan Kurung
- Stack Monoton: Elemen Lebih Besar Berikutnya
- Queue dan collections.deque
- Maksimum Sliding Window dengan Deque