Skip to main content

Heap dan Tries


Heap and Tries

Heap itu pada dasarnya adalah BST (Binary Search Tree) yang memenuhi psayarat dari properti heap. Heap juga dapat dibilang implementasi efisien dari tipe abstrak dengan antrian prioritas.
Ada 3 tipe heap, yaitu :
Min Heap
Dalam min heap, setiap node di atas lebih kecil dari pada childrennya. Contohnya seperti dibawah ini,

Untuk insert, urutannya selalu dari kiri baru ke kanan. Sebagai contoh apabila di insert angka 14 maka seperti dibawah ini,

Untuk deletion, nilai terakhir dinakkan ke atas dan melakukan heapifi apabila lebih kecil, sebagi contoh apabila root dihapus maka seperti ini,








Max Heap
Max hepa adalah kebalikan daripada min heap, Jadi node yang diatas lebih besar daripada childrennya, contohnya seperti berikut ini,


Untuk insert sama seperti min heap semuanya dimulai dari sebalah kiri, sebagai contoh apabila di insert angka 2 maka jadi seperti,


Untuk deletiosn juga sama seperti min heap jadi apabila di hapus rootnya maka angka terakhirnya naik menggantikan root dan heapifi apabila childrennya ada yang lebih besar. Sebagai contoh apabila root nya dihapus menjadi,



Min-Max Heap
Min max heap adalah gabungan dari min heap dan max heap,  jadi bagian paling atas itu adalah min heap  dan children dari min heap tersebut adalah max heap dan seterusnya.


Untuk insert min max heap dimulai dari sebelah kiri seperti biasa tetapi abis itu dilakukan heapifi agar urutannya tidak salah. Sebagai contoh apabila di insert angka 49 maka akan di cek ke grand parentnya apakah lebih besar atau tidak, karena 50 lebih besar dari 34 maka di tukar tempatnya. Karena tidak ada grand parent lagi maka sudah selesai. Contoh treenya seperti dibawah ini


Untuk delete sama seperti heap lainnya, apabila masih belum urut maka dilakukan heapifi. Jadi apabila kita ingin menghapus angka terbesar yaitu 49, maka angka terakhir yaitu 34 ditukar dengan 49. Karena sudah urut dan tidak merusak syarat dan properti min max heap maka sudah selesai. Jadi treenya menjadi seperti berikut ini,




Tries

Tries adalah tree yang digunakan untuk menyimpan set yang dinamis atau associative array, biasanya berupa string. Dapat lebih efektif dan juga efisien. Tries itu biasanya digunakan dalam game-game bubble words. Contoh tries adalah sebagai berikut,


Comments

Popular posts from this blog

RANGKUMAN DATA STRUCTURE DARI PERTEMUAN AWAL

Nama : Muhamad Faqih NIM : 2301887931 Kelas : CB01 Lecturer : Ferdinand Ariandy Luwinda (D4522) dan Henry Chong (D4460) SUMMARY DATA STRUCTURE DARI PERTEMUAN AWAL Linked List II 1. Circular single Linked list Single linked list adalah satu variabel pointer untuk menyimpan data dengan metode linked list. Data disimpan ke dalam node, setiap node memiliki pointer untuk menunjuk ke node berikutnya. Nah, kalau Circular single linked list itu sama seperti single linked list tetapi setiap node awalnya menyambung dengan node akhir seperti lingkaran, selalu menyambung. Ini adalah ilustrasi perbedaan single linked list (atas) dan circular single linked list(bawah) 2. Doubly linked list Adalah Linked list yang mempunya dua pointer yaitu pointer prev dan next. Pointer prev digunakan untuk menunjukkan ke data sebelumnya dan sebaliknya kalau pointer next menunjukkan ke data selanjutnya Contoh code untuk double linked list