Pertemuan 15 Red-Black Tree (RBT) Matakuliah : T0026/Struktur Data Tahun : 2005 Versi : 1/1 Pertemuan 15 Red-Black Tree (RBT)
Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Mahasiswa dapat menghasilkan program modular untuk mengimplementasikan ADT Red-Black tree
Pengertian dan kegunaan RBT Contoh Red-Black Tree Operasi pada RBT Outline Materi Pengertian dan kegunaan RBT Contoh Red-Black Tree Operasi pada RBT inserting data RBT Deleting data RBT contoh program implementasi
Memiliki karakteristik BST Node memiliki warna, red atau black Root selalu black Node eksternal selalu black Node eksternal Node eksternal boleh tidak ditulis
Anak dari node red harus black tidak ada 2 node red yg berurutan Karakteristik (2) Anak dari node red harus black tidak ada 2 node red yg berurutan Black-height yang sama pd kedua simple path dari suatu node ke leaf black-height (bh) : Jumlah node black pd suatu simple path bh(node 2) = 1 bh(node 11) = 2
Insert Node baru diberi warna RED Hasil insert harus tetap memenuhi karakteristik tree RB Pemeriksaan node setelah insert dilakukan berurutan dari node baru ke node-node lain (ancestor) ke arah Root
Insert : Kasus 1 atau Jika parent node baru BLACK, tree masih memenuhi persyaratan tree R-B
Insert : Kasus 2 Node baru (X atau Z) dan parent berurutan berwarna RED Supaya memenuhi persayaratan tree R-B, dilakukan rotasi tunggal dan pergantian warna
Insert : Kasus 3 Node baru (Y) dan parent berurutan berwarna RED Supaya memenuhi persayaratan tree R-B, dilakukan rotasi ganda dan pergantian warna
Insert : Kasus 4 Node baru dan parent, berurutan RED Perubahan RED-BLACK pada parent dan uncle Perubahan BLACK-RED pada grandparent
Contoh Insert : Insert A, L, G, O , R, I, T, H, M A menjadi Root, harus BLACK, perubahan warna Tree dirotasi ganda, kemudian diikuti perubahan warna Root A L
Lanjutan A L G O A L G O R I A L G O R I A L G O R A L G O R I T Tree dirotasi tunggal (kasus 2) A L G O R A L G O R I T
Lanjutan A L G O R I T H G A I O R L T H M Rotasi tunggal Perubahan warna Rotasi ganda
Delete Delete pada tree R-B menyerupai BST Pada BST : Pada tree R-B : Jika node 56 dihapus, isi child (3) di-copy ke posisi 56 yg dihapus, dan node child dihapus Pada tree R-B : Hapus node BLACK akan menyebabkan keseimbangan black-height terganggu Token double-black ‘menggantikan’ posisi BLACK yg dihapus Proses thd token, mengikuti kasus A, B atau C 3 56 3 3
Delete (lanjutan) Token double-black pada node RED: mengubah warna node menjadi BLACK, dan token akan dihapus Token double-black pada Root (BLACK): dapat dihapus, tidak ada pengaruh Delete leaf RED, langsung dihapus karena tidak mempengaruhi keseimbangan black-height
Delete : Kasus A Sibling dari node double-black : BLACK Satu nephew dari node double-black : RED Rotasi tunggal atau ganda dan token dihapus
Delete : Kasus B Sibling dari node double-black : BLACK Dua nephew dari node double-black : BLACK Token dipindahkan ke atas dengan perubahan warna tanpa rotasi
Delete : Kasus C Sibling dari node double-black : RED Terjadi rotasi tunggal dan perubahan warna
Contoh Delete G L I O R T H A M G L I O R T H M I G L I O R T H M G O Delete A : delete leaf BLACK, black-height terganggu kasus B I G L I O R T H M G O Kasus B H L R M T token double BLACK pada posisi eks node BLACK Token di Root dapat dihapus
Contoh Delete (lanjutan 1) Token mengubah RED jadi BLACK G L I O R T H M G M I O R T H G M I O R T H Delete L: node mempunyai child leaf RED yang akan menggantikan. Token double-black pada posisi eks node BLACK
Contoh Delete (lanjutan 2) G M I O R T H H M I O R T Token mengubah RED jadi BLACK H M I O R T Delete G: child leaf RED yang akan menggantikan, token pada bekas posisi BLACK H I M R T H M I O R T kasus A H I R T M Delete O: child leaf M yang akan menggantikan, token di bekasposisi node BLACK
Contoh Delete (lanjutan 3) I R T M H I M T H I M T kasus B Token mengubah RED jadi BLACK Delete R: node R mempunyai predecessor BLACK yang akan menggantikan. Token diletakkan pada bekas posisi M H I M T
Contoh Delete (lanjutan 4) I M T H M T Kasus A M T H Delete I: leaf H akan menggantikan I, token di bekas posisi H Hapus token di Root M T H M H Kasus B M H M H Delete T: token diletakkan di bekas posisi T
Contoh Delete (lanjutan 5) M H M Delete H: delete leaf RED, langsung delete
Latihan Jika pada saat delete O, yang menggantikan adalah node dari subtree kanan, tree R-B menjadi … Jika pada saat delete I, yang menggantikan adalah node yang berasal dari subtree kanan, tree R-B menjadi …