130 likes | 287 Views
Pertemuan 18 Deap. Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat menghasilkan program modular untuk mengimplementasikan ADT deap. Outline Materi. Pengertian dan kegunaan deap
E N D
Pertemuan 18Deap Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mahasiswa dapat menghasilkan program modular untuk mengimplementasikan ADT deap
Outline Materi • Pengertian dan kegunaan deap • contoh deap • operasi pada deap • contoh implementasi program deap
DEAP Definisi Deap : double-ended heap, dengan karakteristik s.b.b. : • Root tidak memiliki elemen • Left Subtree merupakan minimum heap. • Right Subtree merupakan maksimum heap. • Jika subtree kanan tidak kosong maka, i adalah node pada subtree kiri. j adalah node yang berkoresponden pada subtree kanan. Jika j tidak ada maka node yang menjadi j adalah node pada subtree kanan yang berkoresponden dengan parent dari i. Isi data (key) dari node I harus lebih kecil atau sama dengan isi data pada node j (key)
DEAP 5 45 10 8 25 40 15 19 9 30 20 minimum heap maximum heap • Let i be in min heap. • Corresponding node j of i in max heap • j = i + 2log2i - 1 • if (j > n), then j = j/2
Insertion • Karena Deap adalah sebuah heap maka setiap kali dilakukan insert, data yang baru akan dimasukan pada array paling akhir. • Setelah insert lakukan pembandingan dengan coresponden node agar syarat sebuah heap tetap terjaga • Lakukan Heapify pada kedua Heap (Min Heap dan Max Heap)
Insertion Algorithm
Deletion • Proses Delete pada Deap hanya terdiri dari 2 macam delete yaitu Delete Min dan Delete Max • Setelah dilakukan Delete maka posisi root dari tiap Heap akan diisi dengan child yang paling kecil (jika Min Heap) child paling besar (jika Max Hep). Proses ini terus berlangsung sampai menuju leaf • Jika telah mencapai leaf pindahkan node paling atas dari array ke index leaf yang kosong • Bandingkan dengan coresponden nodenya. Jika tidak sesuai tukar • Lakukan heapify