🌿Praktikum 1
Implementasi Heap dengan ArrayList
Deskripsi
Pada praktikum ini, Anda akan membuat struktur data heap untuk kasus maximum prioritu queuing. Sehingga, tree akan disusun mulai dari yang terbesar. Selain itu, struktur heap yang akan Anda buat akan diterapkan dengan menggunakan ArrayList
.
Langkah Praktikum
Buatkan kelas
Heap
Tambahkan atribut
heap
dengan tipeList<Integer>
Tambahkan juga konstruktor untuk kelas
Heap
.Jangan lupa, import package yang dibutuhkan.
Tambahkan method
getHeap()
pada kelasHeap
.
Selanjutnya, untuk mengetahui index parent dari sebuah child, buatlah method bantuan dengan nama
parent(int index)
.
Pada heap, diperlukan proses menukar nilai ketika nilai pada susunan heap tidak valid. Oleh karena buat, buatlah method
swap(int index1, int index2)
yang akan digunakan untuk proses swap.
Sampai pada tahap ini, Anda telah mengimplementasikan fungsi-fungsi dasar pada struktur data heap. Fungsi-fungsi tersebut nantinya akan digunakan pada proses penambahan dan pengurangan data.
Untuk menambahkan data, buatlah method
insert(int value)
.
Selanjutnya, untuk mengurani nilai pada heap, buatlah method
remove()
. Pada kasus ini, Anda membuat maximum priority queuing, sehingga, hanya node root yang akan dikeluarkan terlebih dahulu.
Setelah proses penghapusan, heap harus menyusun kembali struktur data yang ada didalamnya agar tetap valid dengan mempertahankan struktur complete tree. Tambakan method
sinkDown(int index)
untuk menerapakan solusi dari kondisi tersebut.
Untuk menguji apakah heap yang dibuat dapat berjalan sesuai dengan kaidah heap, buatlah kelas
HeapMain
yang berisi main method untuk melakukan pengujian.
Jalankan program dan validasi hasilnya.
Pertanyaan
Pada method
swap
terdapat methodset
yang dipanggil oleh objekheap
. Apa fungsi dariset
?Pada method
remove
digunakan nilai kembalian (return value) yaituInteger
. Apa perbedaan nilai kembalian antaraInterger
danint
? Mengapa digunakanInteger
?Perhatikan method
sinkDown
baris ke-17 sampai ke-20. Proses apa yang dijalankan pada baris tersebut?
Last updated