My first Magazine pemrograman-kompetitif-dasar | Page 119
10.2 Heap
10.2.1
Konsep Heap
Secara umum, heap mendukung operasi-operasi sebagai berikut:
• push , yaitu memasukkan elemen baru ke penyimpanan.
• pop , yaitu membuang elemen terbesar dari penyimpanan.
• top , yaitu mengakses elemen terbesar dari penyimpanan.
Operasi heap tersebut dapat diimplementasikan dengan berbagai cara. Kita akan mempela-
jari salah satunya, yaitu binary heap .
10.2.2
Struktur Binary Heap
Struktur data Binary Heap memiliki sifat:
• Berstruktur complete binary tree.
• Setiap node merepresentasikan elemen yang disimpan pada heap .
• Setiap node memiliki nilai yang lebih besar daripada node anak-anaknya.
9
7
7
4
5
3
1
6
2
4
Gambar 10.5: Contoh binary heap .
9
7
7
9
5
1
3
7
2
4
Gambar 10.6: Contoh bukan binary heap .
Pada gambar 10.6, pohon tersebut bukanlah sebuah binary heap . Perhatikan node yang
ditandai. Node tersebut memiliki nilai 7, sementara salah satu anaknya memiliki nilai 9. Ini
melanggar aturan setiap node memiliki nilai yang lebih besar daripada node anak-anaknya.
Binary heap perlu memiliki struktur seperti ini untuk menjamin operasi-operasinya dapat
dilakukan secara efisien. Misalkan N adalah banyaknya elemen yang sedang disimpan. Operasi
push dan pop bekerja dalam O(log N), sementara top bekerja dalam O(1). Kita akan melihat
satu per satu bagaimana operasi tersebut dilaksanakan.
109