Matakuliah Tahun Versi : T0026/Struktur Data : 2005 : 1/1 Pertemuan 18 Deap 1 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mahasiswa dapat menghasilkan program modular untuk mengimplementasikan ADT deap 2 Outline Materi • • • • Pengertian dan kegunaan deap contoh deap operasi pada deap contoh implementasi program deap 3 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) 4 DEAP 5 45 10 15 8 19 9 25 30 40 20 minimum heap maximum heap Let i be in min heap. Corresponding node j of i in max heap j = i + 2log i - 1 if (j > n), then j = j/2 2 5 Representation 6 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) 7 Insertion Insert(4) 5 45 10 15 8 19 9 25 30 I 20 40 4 J J<I tukar posisi! 8 Insertion Insert(4) 5 45 10 15 8 4 9 I 25 30 20 40 19 J 19 posisi sudah benar 4 posisi lebih kecil dari parent tukar posisi!! 9 Insertion Insert(4) 5 45 4 15 8 10 9 I 25 30 20 40 19 J 4 masih lebih kecil dibandingkan parent tukar posisi!!! 10 Insertion Insert(4) 4 45 5 15 8 10 9 25 30 I 20 40 19 J Selesai 11 Insertion Algorithm 12 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 13
© Copyright 2024 Paperzz