Larik dan list – indeks, sisip, hapus, dan telusur

InformatikaAlgoritma dan pemecahan masalahUsia 15–16

Gunakan di kelas saya ✨ Sesuaikan dengan AI Laporkan masalah

Sebuah list ditampilkan sebagai sel berindeks dengan penunjuk. Siswa membaca, menulis, menambah di akhir, menyisipkan, dan menghapus elemen, lalu melihat elemen bergeser, panjang berubah, dan galat indeks di luar jangkauan muncul; kemudian beralih ke larik berukuran tetap untuk dibandingkan dengan list dinamis. Mode larik 2D menelusuri langkah demi langkah per baris atau per kolom dengan grid[r][c], mode kamus mencari nilai berdasarkan kunci, dan mode referensi menunjukkan dua nama yang merujuk ke list yang sama. Setiap operasi ditampilkan dalam Python, Java, atau pseudokode.

Pelajaran: Larik dan list: indeks, penyisipan, penghapusan, dan penelusuran

Yang ditunjukkan

Larik menyimpan elemen pada posisi bernomor, sehingga elemen mana pun dapat dibaca atau diubah dalam satu langkah lewat indeksnya. Menyisipkan atau menghapus di tengah lebih lambat karena semua elemen sesudahnya harus bergeser; penghitung perpindahan memperlihatkan biaya itu. List dinamis tumbuh sesuai kebutuhan, sedangkan larik berukuran tetap mempertahankan panjangnya dan memerlukan penghitung slot yang terpakai. Simulasi ini juga mencakup larik 2D yang ditelusuri dengan perulangan bersarang, kamus yang mencari berdasarkan kunci, dan referensi: setelah b = a, kedua nama merujuk ke list yang sama.

Cara menggunakan

Pilih Mode dan Notasi. Di mode List, ketik Indeks dan Nilai, lalu klik operasi seperti nums.insert(2, 15) untuk melihat elemen bergeser; coba indeks melewati ujung untuk melihat galatnya. Ubah Struktur menjadi Larik ukuran tetap untuk menyisipkan dan menghapus secara manual. Di mode Larik 2D, pilih Urutan penelusuran lalu klik Langkah. Coba juga mode Kamus dan Referensi.

Parameter yang dapat diubah

  • Mode List / larik 1D, Larik 2D, Kamus (kunci → nilai), Referensi dan alias
  • Struktur 1D List dinamis (list, ArrayList), Larik ukuran tetap (10)
  • Notasi kode Python, Java, Pseudokode
  • Banyak elemen awal 3–10
  • Baris larik 2D 2–6
  • Kolom larik 2D 2–8
  • Kecepatan animasi 1–5 langkah/s

Pertanyaan untuk dijelajahi

  1. Berapa elemen yang harus berpindah saat sebuah nilai disisipkan di awal list berisi 10 elemen?
  2. Mengapa nums[len(nums)] menimbulkan galat di Python, sedangkan nums[-1] tidak?
  3. Setelah b = a, mengapa mengubah b[0] juga mengubah a, dan bagaimana Anda mencegahnya?