Skip to main content

HEAP & TRIES

BINARY HEAP AND TRIES 
APA ITU ? 

Data structures play a central role in modern computer science ...


A. Binary Heap Overview
--------------------------------------------------------------------------------------------------------------------------

Apa itu Binary Heap ? Binary Heap adalah suatu struktur data berbentuk tree ( terapan BST ) yang dinamis karena penggunaan yang bergantung dengan fungsionalitas kondisinya.

Nah , sebenarnya jenis kondisional Binary Heap itu ada tiga guys !
Yuk , kita simak satu per satu !


1) MIN - HEAP 

Misalkan kita akan menginput suatu data secara random . Anggaplah inputnya :

35 33 42 10 14 19 27 44 26 31

Nah , maka format MIN-HEAP nya akan seperti ini :


Max Heap Example

Loh kok bisa begitu , min ? Nah urutan masuknya sebenarnya yang membuat algoritma MIN-HEAP  bekerja . 
Binary Heap akan menginsert data dengan format : root - kiri - kanan --> left side ( kiri-kanan) --> right side ( kiri-kanan) dan akan berlanjut seperti itu terus .

Seperti ini jika digambarkan :
A Closer Look at Heapsort - Parul Baweja - Medium

Nah , maka setelah sudah di "sort" , kita dapat mensort value data heap dimana child yang terdalam akan memiliki value terbesar , dan root treenya adalah nilai paling kecil . Inilah implementasi MIN-HEAP.
Dari animasi di atas , maka value 3 dan 2 akan dibandingkan dengan parentnya yakni 6 , dan dipilih yang terkecil , yakni data 2 . Maka 6 akan ditukar dengan 2 . Hal yang sama dilakukan di sebelah kanan dimana nilai 8 ditukar dengan 1 . Pada depth 2 , dipilih nilai paling kecil yakni 1 sehingga 10 ( root ) ditukar dengan nilai 1. Karena depth 2 nilai data 10 lebih besar daripada subtree kirinya yakni 8 , maka ditukar kembali.



2) MAX - HEAP

Implementasi MAX-HEAP sama seperti MIN-HEAP  guys ! Hanya saja , sekarang karena MIN-HEAP ter-"sort" secara ascending ke bawah , maka MAX-HEAP ter-"sort" secara descending ke bawah . Ini mengakibatkan root tree heap adalah nilai dengan data TERBESAR .

Mari kita simak secara lengkapnya seperti ini :


Max Heap Animated Example



3) MIN-MAX HEAP

Waduh , tadi sudah ada min dan max-heap . Kok sekarang digabung ? Yup , penggabungan min-max heapnya dilihat dari depth treenya. Depth ganjil akan menggunakan terapan min heap  sedangkan Depth genap akan menggunakan max-heap .

Min-max heap - Wikipedia





4) DELETION IN MIN/MAX-HEAP

Nah , perlu diketahui , data yang selalu dihapus pada Binary Heap itu node root nya lho ! Aneh ya ? Tapi ada alasannya kok . Aturan deletion masih mengikuti aturan BST , namun data yang akan menggantikan node root adalah DATA TERAKHIR yang terinput

Untuk simulasinya , agar kalian semua mengerti , yuk simak gambar berikut ! 

Max Heap Deletion Animated Example


Gambar tersebut adalah contoh DELETION PADA MAX-HEAP .
Node root 44 dihapus digantikan oleh node data terakhir yakni node data 14. Lalu node data root 14 akan dibandingkan pada node 42 ( dibawahnya , yang paling besar dari 35 atau 42 , yakni 42 ). Node 14 pun ada di depth 2 , dan dibandingkan kembali oleh data node 33 lalu ditukar posisinya . Dan terakhir , node data 26 ditukar dengan node 14. 

--------------------------------------------------------------------------------------------------------------------------

B. TRIES

Apa itu Tries ? Apakah mirip dengan tree lagi ?
YUP . Tapi kali ini , data yang dimasukkan bukan dalam bentuk integer guys . TAPI CHAR . 
Kalian pasti pernah main game sambung kata kan ? Nah implementasi Tries mirip dengan game sambung kata , hanya saja berbentuk tree .


Nah , itu saja quick introduction heap & tries untuk kalian ^0^ . Terima kasih !


Comments