Lewati ke konten utama

K1 · Modul 05

Stack, queue, dan deque

42 langkah singkat, dari mudah sampai tantangan.

  1. Level 1

    Kenal

  2. Level 2

    Paham

  3. Level 3

    Terapkan

  4. Level 4

    Tantangan

  5. Level 5

    Pendalaman

Intinya

  • Stack (masuk terakhir, keluar pertama), queue (masuk pertama, keluar pertama), dan deque (dua ujung) adalah janji operasi, bukan cara menyimpan; ketiganya menjanjikan O(1) per operasi.
  • list.pop(0) menggeser semua sisa elemen, jadi antrean berbasis itu Θ(n²) untuk n pesanan.
  • Antrean O(1) dibuat dengan list berantai (kepala dan ekor), array melingkar, atau dua tumpukan (O(1) amortisasi).
  • Tumpukan memeriksa kurung seimbang (dibuktikan dengan invarian) dan menyimpan undo/redo; deque monoton menghitung maksimum jendela geser.
  • Di kode sungguhan pakai collections.deque, setelah tahu isinya.

Sebelum mulai

±4 jam.

Modul ini memakai materi di bawah. Belum yakin? Ulas dulu bagian yang disebut.

Hasil belajar: menjelaskan stack, queue, dan deque sebagai tipe data abstrak beserta janji kompleksitasnya; mengimplementasikannya dengan list, list berantai, dan array melingkar; membuktikan pemeriksa kurung seimbang dengan invarian; menganalisis antrean dari dua tumpukan secara amortisasi; memakai tumpukan untuk undo/redo dan ekspresi; memakai deque untuk jendela geser; serta memilih collections.deque dengan sadar.

Proyek: Kurir Makmur langkah 5: Antrean untuk pesanan dan Tumpukan untuk undo (kontrak Proyek Kurir §3).

Istilah di modul ini (14)

Ketuk istilah untuk melihat penjelasannya. Di materi, istilah bergaris titik membuka kartu yang sama. Semua istilah course

Bahan modul

Semua kode, latihan, dan data modul ini dalam satu zip, untuk dijalankan di laptop atau Google Colab.

  • 26 contoh kode
  • 10 berkas latihan + tes
  • 1 berkas data
Lihat isi zip
  • BACA-DULU.txt
  • contoh_k1_05_26.py
  • contoh_k1_05_56.py
  • contoh_k1_05_110.py
  • contoh_k1_05_143.py
  • contoh_k1_05_325.py
  • contoh_k1_05_440.py
  • contoh_k1_05_795.py
  • contoh_k1_05_1026.py
  • contoh_k1_05_1051.py
  • contoh_k1_05_1085.py
  • contoh_k1_05_1133.py
  • contoh_k1_05_1190.py
  • contoh_k1_05_1297.py
  • contoh_k1_05_1490.py
  • contoh_k1_05_1521.py
  • contoh_k1_05_1790.py
  • contoh_k1_05_1825.py
  • contoh_k1_05_1855.py
  • contoh_k1_05_1883.py
  • contoh_k1_05_1934.py
  • contoh_k1_05_1960.py
  • contoh_k1_05_2380.py
  • contoh_k1_05_2641.py
  • contoh_k1_05_2690.py
  • contoh_k1_05_2756.py
  • contoh_k1_05_2780.py
  • test_k1_05_3.py
  • test_k1_05_1.py
  • test_k1_05_2.py
  • test_k1_05_9.py
  • test_k1_05_6.py
  • test_k1_05_4.py
  • test_k1_05_5.py
  • test_k1_05_7.py
  • test_k1_05_8.py
  • test_k1_05_10.py
  • peta.json