Data Structures Pertemuan 8

HEAP adalah complete binary tree.

Terdapat 3 jenis heap yaitu:

Min heap

Max heap

Min-max heap


 

MIN HEAP adalah tree yang memiliki root berupa anggota terkecil dibandingkan denga child-childnya.

Sehingga ketika kita ingin mencari data terkecil, hanya perlu untuk melakukan pop pada data paling atas/ rootnya saja.

Setiap node di Min heap pasti lebih kecil dibangdingkan dengan childnya.

Elemen terbesar di dalam Min heap terdapat pada salah satu leaf node.

Untuk memudahkan penulisan code Min heap cukup gunakan array.

Min-heap

Gambar diatas merupakan salahsatu contoh Min heap yang benar.


INSERT PADA MIN HEAP

img294

Dalam memasukkan data ke dalam Min heap, yang perlu kita lakukan adalah

Selalu memeriksa apakah node yang di push sudah lebih besar dibandingkan parentnya.

Apabila node yang di push lebih kecil daripada parentnya, maka swap posisi node tersebut dengan parentnya.

Begitu seterusnya.


DELETE PADA MIN HEAP

img295

apabila yang ingin dihapus adalah rootnya maka yang perlu dilakukan adalah

Menggantikan root dengan menggunakan node paling terakhir dari tree.

Membandingkan apakah root sudah lebih kecil daripada childnya.

Jika root masih lebih besar daripada childnya, maka swap root dengan childnya,

Begitu seterusnya sampai data di root adalah angka terkecil.


MAX HEAP

MAX HEAP adalah tree yang memiliki root berupa anggota terbesar dibandingkan denga child-childnya.

Sehingga ketika kita ingin mencari data terbesar, hanya perlu untuk melakukan pop pada data paling atas/ rootnya saja.

Setiap node di Max heap pasti lebih besar dibangdingkan dengan childnya.

Elemen terkecil di dalam Max heap terdapat pada salah satu leaf node.

Untuk memudahkan penulisan code Min heap cukup gunakan array.

ld3It

Gambar diatas merupakan salahsatu contoh Max heap yang benar.


INSERT PADA MAX HEAP

Contoh push angka 10,20,30,40,15,35.45

freview-heap

Dalam memasukkan data ke dalam Max heap, yang perlu kita lakukan adalah

Selalu memeriksa apakah node yang di push sudah lebih kecil dibandingkan parentnya.

Apabila node yang di push lebih besar daripada parentnya, maka swap posisi node tersebut dengan parentnya.

Begitu seterusnya sampai rootnya merupakan data terbesar.


DELETE PADA MAX HEAP

heap.delete

apabila yang ingin dihapus adalah rootnya maka yang perlu dilakukan adalah

Menggantikan root dengan menggunakan node paling terakhir dari tree.

Membandingkan apakah root sudah lebih besar daripada childnya.

Jika root masih lebih kecil daripada childnya, maka swap root dengan childnya,

Begitu seterusnya sampai data di root adalah angka teresar.


MIN MAX HEAP

Merupakan heap yang memiliki kondisi yang berbeda beda di setiap levelnya, dimana paling atas atau rootnya adalah min, baris ke dua adalah max, ke 3 adalah min, dan seterusnya.

Contoh:

1

untuk insert dan deletion di dalam Min Max heap memiliki cara yang sama dengan Min heap dan Max heap, yang membedakan di sini adalah baris yang min level dibandingkan dengan baris yang min level, baris yang max level dibandingkan dengan baris yang max level.


TRIE

Trie merupakan salah satu konsep yang sering diimplementasikan ke dalam auto complete pada search engine google.

Trie digunakan untuk menyimpan associative array sehingga dengan begitu dapat diingat string apasaja yang sering diinput orang.

Trie


 

HASHING

Hashing adalah transformasi dari string menjadi nilai yang biasanya lebih pendek dan biasanya digunakan untuk mengindeks dan mengambil item dalam database karena lebih cepat untuk menemukan item menggunakan kunci hash lebih pendek daripada untuk menemukannya menggunakan nilai asli.

 

Hashing table adalah tabel (array) di mana kita menyimpan string asli, index dari table adalah hashed key dan valuenya adalah original string.

Contoh hashing table

Screen Shot 2016-05-31 at 8.14.20 PM

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

Leave a Reply