Matakuliah Tahun Versi : T0026/Struktur Data : 2005 : 1/1 Pertemuan 15 Red-Black Tree (RBT) 1 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Mahasiswa dapat menghasilkan program modular untuk mengimplementasikan ADT Red-Black tree 2 Outline Materi • • • • • • Pengertian dan kegunaan RBT Contoh Red-Black Tree Operasi pada RBT inserting data RBT Deleting data RBT contoh program implementasi 3 Karakteristik (1) 1. Memiliki karakteristik BST 2. Node memiliki warna, red atau black – Root selalu black – Node eksternal selalu black Node eksternal Node eksternal boleh tidak ditulis 4 Karakteristik (2) 3. Anak dari node red harus black tidak ada 2 node red yg berurutan 4. 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 5 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 6 Insert : Kasus 1 Y Y a c X a X atau b b c • Jika parent node baru BLACK, tree masih memenuhi persyaratan tree R-B 7 Insert : Kasus 2 Z X Y d a Y Y X c X a a b Z b c b Z d c d • Node baru (X atau Z) dan parent berurutan berwarna RED • Supaya memenuhi persayaratan tree R-B, dilakukan rotasi tunggal dan pergantian warna 8 Insert : Kasus 3 Z X Y d a X Z X a Y b a c Z b c d Y d b c • Node baru (Y) dan parent berurutan berwarna RED • Supaya memenuhi persayaratan tree R-B, dilakukan rotasi ganda dan pergantian warna 9 Insert : Kasus 4 Z Y Z Y d c a d c X X X Y a b b X b a Y a Z b c Z d c d • Node baru dan parent, berurutan RED • Perubahan RED-BLACK pada parent dan uncle • Perubahan BLACK-RED pada grandparent 10 Contoh Insert : Insert A, L, G, O , R, I, T, H, M A A A menjadi Root, harus BLACK, perubahan warna A G L A L G Tree dirotasi ganda, kemudian diikuti perubahan warna Root A L 11 Lanjutan A A L A O L O L A O G O L R R I G L O R I G A G G G A R O L I R T Tree dirotasi tunggal (kasus 2) 12 Lanjutan G G Rotasi tunggal A O A L R O I I T H R T L H A O I H I G G Perubahan warna A T L M O I R H Rotasi ganda A R T L G O H L R T M M 13 Delete • Delete pada tree R-B menyerupai BST • Pada BST : Jika node 56 dihapus, isi child (3) di-copy ke posisi 56 yg dihapus, dan node child dihapus 56 3 3 3 • Pada tree R-B : – Hapus node BLACK akan menyebabkan keseimbangan blackheight terganggu – Token double-black ‘menggantikan’ posisi BLACK yg dihapus – Proses thd token, mengikuti kasus A, B atau C 14 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 15 Delete : Kasus A X Y Z a b X d Y c X a Z b c Z a d b Y c d • Sibling dari node double-black : BLACK Satu nephew dari node double-black : RED • Rotasi tunggal atau ganda dan token dihapus 16 Delete : Kasus B X X Y a b Y a c b c • Sibling dari node double-black : BLACK Dua nephew dari node double-black : BLACK • Token dipindahkan ke atas dengan perubahan warna tanpa rotasi 17 Delete : Kasus C X Y Y a b X c a c b • Sibling dari node double-black : RED • Terjadi rotasi tunggal dan perubahan warna 18 Contoh Delete I I G A O L H G R M O L H T M Delete A : delete leaf BLACK, black-height terganggu T kasus B I I G O H R L Kasus B R M token double BLACK pada posisi eks node BLACK T G O H L R M T Token di Root dapat dihapus 19 Contoh Delete (lanjutan 1) I I G G O H Token mengubah RED jadi BLACK L H R M Delete L: node mempunyai child leaf RED yang akan menggantikan. O M G R O H T T I M R T Token double-black pada posisi eks node BLACK 20 Contoh Delete (lanjutan 2) I I G H O M H O M R Token mengubah RED jadi BLACK I H O R M R T T T Delete G: child leaf RED yang akan menggantikan, token pada bekas posisi BLACK I I H H O M kasus A M H R R T I R M T T Delete O: child leaf M yang akan menggantikan, token di bekasposisi 21 node BLACK Contoh Delete (lanjutan 3) I I H R M H T Delete R: node R mempunyai predecessor BLACK yang akan menggantikan. I kasus B H M M T T Token diletakkan pada bekas posisi M Token mengubah RED jadi BLACK I H M T 22 Contoh Delete (lanjutan 4) H I H M M M Kasus A T H T T Delete I: leaf H akan menggantikan I, token di bekas posisi H M H M T H Kasus B H M Hapus token di Root M H Delete T: token diletakkan di bekas posisi T 23 Contoh Delete (lanjutan 5) M M H Delete H: delete leaf RED, langsung delete 24 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 … 25
© Copyright 2024 Paperzz