Latihan 1 dari materi Amortized Analysis di Struktur Data — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi method push(value) di class DynamicArray. Kapasitas awalnya 1.
Kalau size sama dengan capacity (penuh), gandakan capacity, bikin array baru sebesar itu, lalu salin semua isi lama ke sana.
Simpan value di posisi size, lalu tambah size satu.
Kembalikan capacity sesudah operasinya (bukan biayanya, bukan size).
get(i) dan length sudah jadi. Tujuh console.log di bawahnya harus mencetak, berurutan:
1
2
4
4
8
5
10,50
Class-mu juga dicoba dengan isi lain, jadi isi lama harus ikut pindah waktu kapasitasnya digandakan.
Hint
push punya dua kemungkinan: masih ada slot kosong, langsung tulis; sudah penuh, pindah dulu ke array yang dua kali lebih besar, baru tulis.
Cek penuh dengan this.size === this.capacity. Kalau penuh: gandakan this.capacity, bikin new Array(this.capacity), salin isi lama pakai for dari 0 sampai this.size, lalu ganti this.storage dengan array baru itu.