Heap adalah salah satu bentuk binary tree.
Heap terdiri dari 2 jenis yaitu:
1. Max Heap
Heap yang rootnya adalah data yang paling maksimum.
2. Min Heap
Heap yang rootnya adalah data yang paling minimum.
Insert pada heap dilakukan dengan meletakkan data tempat terakhir sesuai complete binary tree. Lalu selanjutnya akan dibandingkan dengan parentnya.
Untuk max heap, swap dilakukan saat newdata>parent. Ini akan dilakukan terus menerus keatas sampai newdata<parent.
Untuk min heap, swap dilakukan saat newdata<parent. Ini akan dilakukan terus menerus keatas sampai newdata>parent.
Contoh:
Delete pada heap hanya dapat dilakukan pada root. Setelah dihapus kemudian root akan digantikan dengan data terakhir sesuai complete binary tree.
Untuk max heap:
- Jika leftchildren dan rightchildren > data maka bandingkan LC dengan RC, jika LC > RC maka swap data dengan LC, jika LC < RC maka swap data dengan RC.
- Jika leftchildren > data dan rightchildren < data maka swap data dengan LC.
- Jika leftchildren < data dan rightchildren > data maka swap data dengan RC.
Lakukan ke bawah berulang kali sampai leftchildren dan rightchildren < data.
Untuk min heap:
- Jika leftchildren dan rightchildren < data maka bandingkan LC dengan RC, jika LC < RC maka swap data dengan LC, jika LC > RC maka swap data dengan RC.
- Jika leftchildren < data dan rightchildren > data maka swap data dengan LC.
- Jika leftchildren > data dan rightchildren < data maka swap data dengan RC.
Lakukan ke bawah berulang kali sampai leftchildren dan rightchildren > data.
Contoh:
No comments:
Post a Comment