Monday, May 11, 2020

Heap dan Tries

Heap
Heap adalah Complete binary tree yang berbasis struktur data dan memenuhi aturan heap. Tree pada heap and deap tidak memenuhi aturan BST yang harus terurut secara inorder, yang penting tree tersebut mengikuti aturan heap. Heap biasanya diimplementasikan pada array dan indexnya dimulai dari 1 bukan 0.


Heap dibagi menjadi 3 jenis yaitu:
1. Min Heap: node paling kecil adalah root dan semakin kebawah levelnya semakin besar

Cara insert:
Jika mi(elemen terkecil terletak di root): Masukkan data nya tidak seperti BST , melainkan dengan konsep array, sehingga kekanan terus, lalu kebawah, dst, atau bisa dikatakan bahwa elemen terakhir akan masuk ke index terakhir/menjadi anak paling kanan dan bawah. Data yang diinsert kemudian dibandingkan dengan parentnya, jika lbh kecil maka swap, lakukan terus menerus sampai root atau sampai data baru tersebut lebih besar dr parentnya.

Cara delete:
Jika min heap(elemen terkecil terletak di root): Maka yang dihapus merupakan rootnya(elemen terkecil). Root yang dihapus tersebut kemudian digantikan oleh data terakhir di nodenya, kemudian data tersebut di downheapmin(jika anak < data tsb, maka tukar,dst sampai mentok dibawah atau node tsb<anaknya).

2. Max Heap: node paling besar adalah root dan semakin kebawah levelnya semakin kecil

Cara insert:
Jika max heap(elemen terbesar terletak di root): Masukkan data nya tidak seperti BST , melainkan dengan konsep array, sehingga kekanan terus, lalu kebawah, dst, atau bisa dikatakan bahwa elemen terakhir akan masuk ke index terakhir/menjadi anak paling kanan dan bawah. Data yang diinsert kemudian dibandingkan dengan parentnya, jika lbh besar maka swap, lakukan terus menerus sampai root atau sampai data baru tersebut lebih kecil dr parentnya.

Cara delete:
Jika max heap(elemen terkecil terletak di root): Maka yang dihapus merupakan rootnya(elemen terbesar). Root yang dihapus tersebut kemudian digantikan oleh data terakhir di nodenya, kemudian data tersebut di downheapmax(jika anak > data tsb, maka tukar,dst), sampai mentok dibawah atau node tsb>anaknya).


Heaps · codepath/compsci_guides Wiki · GitHub

3. Max-Min Heap: min-heap dan max-heap levelnya saling bergantian pada tree

Cara insert:
·       Insert node baru (key) pada index selanjutnya (setelah index terakhir)
1.     jika key terletak pada level min : bandingkan dengan parentnya
Jika parent < key maka swap dan upheapmax dari parentnya (dibandingkan dengan grandparentnya dari posisi key setelah swap)
Jika parent > key, upheapmin dari posisi key (dibandingkan dengan grandparentnya dari posisi key).
2.     jika key terletak pada level max :
Jika parent > key maka swap dan upheapmin dari parentnya (dibandingkan dengan grandparentnya dari posisi keysetelah swap)
Jika parent < key, upheapmax dari posisi key(dibandingkan dengan grandparentnya dari posisi key).

Cara delete:
terdapat 2 jenis delete, yaitu delete min, dan delete max
- Delete Min, menghapus node terkecil, yaitu root
- Delete Max, menghapus node terbesar, yaitu salah satu dari anak root
konsep deletenya sama :
- node yang dihapus digantikan oleh node index terakhir
- lakukan downheapmin jika delete min, atau downheapmax jika delete max


Heap Sort merupakan salah satu dari 6 jenis metode sort atau sorting (melakukkan pengurutan). Heap sort ini menggunakan teknik sorting dengan menggunakan teknik heap. Teknik tersebut tersebut merupakan teknik pengelolaan data yang menggunakan binary tree. Data yang dikelola maksudnya adalah bagaimana data yang sudah terstruktur akan di organisir kembali jika kita memasukkan data baru atau meng-insert data baru, atau pula menghapus data. Teknik itulah yang diterapkan di metode heap sort. Inti dari pengurutan secara heap adalah pengerjaannya yang dilakukkan dengan pengurutan ascending dan descending, jadi ada dua kali pengurutan.

Tries
Tries adalah Binary Tree dimana isi dari tersebut adalah kumpulan dari kata-kata. Tree ini dibuat untuk mempermudah pencarian suatu kata-kata (biasanya digunakan pada saat pembuatan fitur search pada kamus).

danvk.org » Tries, the Perfect Data Structure


No comments:

Post a Comment