Struktur data 09 (double ended heap)

39
Double Ended Heap (DEAP) By Sunarya D. Marwah Copyright@Sunarya D. Marwah

Transcript of Struktur data 09 (double ended heap)

  • 1. By Sunarya D. Marwah Copyright@Sunarya D. Marwah

2. Double Ended Heap (DEAP) Digunakan untuk melaksanakan Double Priority Queue, sebagaimana Min-Max Heap Karakteristik DEAP 1. Root tidak berisi elemen (kosong) 2. Subtree kiri merupakan Min-Heap 3. Subtree kanan merupakan Max-Heap 4. Bila subtree-kanan tidak kosong, maka ada posisi j di subtree-kanan, yang serupa dengan posisi i di subtree- kiri. Bila posisi j tidak ada, maka posisi j digantikan posisi di subtree-kanan yang serupa dengan parent dari i di subtree-kiri. Nilai elemen i < nilai elemen j Copyright@Sunarya D. Marwah 3. Double Ended Heap (DEAP) Contoh DEAP dengan 12 elemen 5 45 10 8 15 11 9 30 20 19 25 40 i j Copyright@Sunarya D. Marwah Max HeapMin Heap 4. Double Ended Heap (DEAP) Insert 5 45 10 8 15 11 9 30 20 19 25 40 i j ? Copyright@Sunarya D. Marwah 5. Double Ended Heap (DEAP) Insert(5) 7 51 10 9 15 11 14 30 20 19 25 40 i j 5 Tukar(Heap[i], Heap[j]) Copyright@Sunarya D. Marwah 6. Double Ended Heap (DEAP) Insert(5) 7 51 10 9 15 11 5 30 20 19 25 40 i j 14 Copyright@Sunarya D. Marwah 7. Double Ended Heap (DEAP) Insert(5) 7 51 10 5 15 11 9 30 20 19 25 40 i j 14 Copyright@Sunarya D. Marwah 8. Double Ended Heap (DEAP) Insert(5) 5 51 10 7 15 11 9 30 20 19 25 40 i j 14 Copyright@Sunarya D. Marwah 9. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 20 Copyright@Sunarya D. Marwah 10. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 20 10 i j Copyright@Sunarya D. Marwah 11. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 20 i j Copyright@Sunarya D. Marwah 12. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 20 i j 30 Copyright@Sunarya D. Marwah 13. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 30 i j 20 Copyright@Sunarya D. Marwah 14. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 30 i j 20 40 Copyright@Sunarya D. Marwah 15. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 40 i j 20 30 Copyright@Sunarya D. Marwah 16. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 40 i j 20 30 50 Copyright@Sunarya D. Marwah 17. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 50 i j 20 30 40 Copyright@Sunarya D. Marwah 18. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 50 i j 20 30 40 60 Copyright@Sunarya D. Marwah 19. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 60 i j 20 30 40 50 Copyright@Sunarya D. Marwah 20. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 60 i j 20 30 40 50 70 Copyright@Sunarya D. Marwah 21. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 60 i j 20 30 70 50 40 Copyright@Sunarya D. Marwah 22. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 70 i j 20 30 60 50 40 Copyright@Sunarya D. Marwah 23. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 70 i j 20 30 60 50 40 80 Copyright@Sunarya D. Marwah 24. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 70 i j 20 30 80 50 40 60 Copyright@Sunarya D. Marwah 25. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 80 i j 20 30 70 50 40 60 Copyright@Sunarya D. Marwah 26. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 80 i j 20 30 70 50 40 60 90 Copyright@Sunarya D. Marwah 27. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 80 i j 20 30 70 90 40 60 50 Copyright@Sunarya D. Marwah 28. Double Ended Heap (DEAP) Insert: +20 +10 +30 +40 +50 +60 +70 +80 +90 10 90 20 30 70 80 40 60 50 Copyright@Sunarya D. Marwah 29. Double Ended Heap (DEAP) Latihan: Insert: +90 +80 +70 +60 +50 +40 +30 +20 +10 Copyright@Sunarya D. Marwah 30. Double Ended Heap (DEAP) Delete DeleteMin atau DeleteMax, memerlukan proses: 1. ShiftUp, untuk mengisi RootMin atau RootMax 2. FillEmpty dari node terakhir. 3. ExchangePartner node i dengan node j 4. ShiftUp (ReInsert i atau j) Copyright@Sunarya D. Marwah 31. Double Ended Heap (DEAP) DeleteMin 10 90 20 30 70 80 40 60 50 Copyright@Sunarya D. Marwah 32. Double Ended Heap (DEAP) DeleteMin 20 90 i j 40 30 70 80 60 50 Copyright@Sunarya D. Marwah 33. Double Ended Heap (DEAP) DeleteMin 20 90 i j 40 30 70 80 50 60 Copyright@Sunarya D. Marwah 34. Double Ended Heap (DEAP) DeleteMax 20 90 40 30 70 80 50 60 Copyright@Sunarya D. Marwah 35. Double Ended Heap (DEAP) DeleteMax 20 80 40 30 70 50 60 Copyright@Sunarya D. Marwah 36. Double Ended Heap (DEAP) DeleteMax 20 80 40 30 70 60 50 Copyright@Sunarya D. Marwah i j 37. Double Ended Heap (DEAP) DeleteMin 20 80 40 30 70 60 50 Copyright@Sunarya D. Marwah 38. Double Ended Heap (DEAP) DeleteMin 30 80 40 70 60 50 Copyright@Sunarya D. Marwah 39. Double Ended Heap (DEAP) DeleteMin 30 80 40 50 70 60 Copyright@Sunarya D. Marwah i j