Heap & Tries
Heap
Heap adalah data structure tree yang terdiri dari 3
properti heap, yaitu:
1. Min Heap: setiap node memiliki value yang lebih
kecil dari childnya (value terkecil di root).
2. Max Heap: setiap node memiliki value yang lebih
besar dari childnya (value terbesar di root).
3. Min-Max Heap: terdiri dari level dan setiap level
memiliki heap yang berbeda.
Heap biasa direpresentasikan dalam bentuk array
sehingga lebih mudah di digunakan. Index array pada heap dimulai dari 1, dan
setiap melakukan insert akan dimasukkan ke index paling akhir. Untuk mengetahui
index dari parent, left child, dan right child digunakan:
Parent(x) = x/ 2
left-child(x) = 2 * x
right-child(x) = 2 * x + 1
left-child(x) = 2 * x
right-child(x) = 2 * x + 1
Min Heap
Max Heap
Min-Max Heap
pada gambar diatas level 0 merupakan min, level 1 max, level 2 min, dan level 3 max. konsep nya sama, yaitu value terkecil berada pada heap min dan terbesar pada heap max.
Insertion
Pada insertion dilakukan mulai dari kiri ke kanan (diisi dari index yang terakhir). kemudian melakukan traverse dengan menukar valuenya, jika min heap maka value parent lebih kecil dari child nya dan sebaliknya pada max heap.
contoh insertion pada min heap:
Deletion
Pada deletion key akan digantikan dengan value yang terakhir diinsert (index terakhir). lalu dilakukan traverse seperti pada insert.
contoh deletion pada min heap (delete key = 3):
Aaplikasi dari heap adalah heap sort dan Djikstra algorithm.
Tries
Tries atau prefix tree adalah data stucture tree yang digunakan untuk menyimpan string yang berurut (dalam karakter).
Implementasi dari tries misalnya pada auto complete web browser, keyboard smartphone, word bubble, dan lain-lain. Dari suatu karakter kita bisa mendapatkan string yang diingkan, misalnya pada contoh diatas jika kita memasukkan karakter B maka akan memunculkan Ball, Bat, dan Be.
Comments
Post a Comment