0Pricing
Coding Interview Prep · Pelajaran

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 this

Gunakan 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 1

Kedua 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

  1. Stack untuk Mencocokkan Kurung
  2. Stack Monoton: Elemen Lebih Besar Berikutnya
  3. Queue dan collections.deque
  4. Maksimum Sliding Window dengan Deque
← Kembali ke Coding Interview Prep