Metode Delete RBT

Embed Size (px)

DESCRIPTION

daaaddadadad

Citation preview

http://www.cs.usfca.edu/~galles/visualization/RedBlack.htmlDelete RBT :1. Untuk menghapus node merah dan berada di ujung (leaf), maka langsung hapus.2. Untuk menghapus node bukan leaf (baik merah maupun hitam), maka lihat ke node penggantinya. Jika node pengganti berwarna merah dan berada di ujung (leaf), maka langsung gantikan nilainya dan hapus node penggantinya. (tanpa ada ubah warna)Peraturan :Ketika menghapus node hitam, akan muncul Token Double Black.Token Double black akan hilang jika telah sampai di root atau ketemu node merah (dalam hal ini, node merah diubah menjadi hitam).3. Untuk menghapus node hitam, muncul Token Double Black. Kondisinya :Jika sibling dari node yang dihapus berwarna hitam, dan semua node anaknya berwarna hitam, maka ubah warna siblingnya menjadi merah. Kemudian lanjutkan pengecekan oleh token double black.4. Untuk menghapus node hitam, muncul Token Double Black. lihat kondisinya :Jika sibling berwarna hitam dan salah satu atau kedua warna node anaknya merah, maka rotasi dan ubah warna (warna parent tidak berubah, warna node anak yang baru menjadi hitam & token double black hilang).*note : pada kasus ini, jalur rotasi ditentukan dari parent dilihat terhadap node anak dari sibling yang berwarna merah, jika kedua node anak dari sibling berwarna merah, boleh dilakukan single rotate atau double rotate, sisanya ditentukan dari jalur node parent terhadap node anak punya sibling yang berwarna merah)5. Untuk menghapus node hitam dan siblingnya berwarna merah, maka tukar warna parent dan siblingnya, kemudian lanjutkan dengan rotasi di parentnya, setelah ini dilanjutkan dengan pengecekan token double black dari posisi yang sama.Pengecekan Token Double Black [Metode yang digunakan pada point 3-5]:1. jika sibling dari token double black tsb, berwarna hitam dan anak2nya semua hitam, maka ubah warna siblingnya menjadi merah. [lanjut]2. jika siblingnya hitam dan anak2nya ada yg berwarna merah, maka lakukan rotasi dan ubah warna node anak menjadi hitam.[stop]3. jika siblingnya merah, maka tukar warna parent dan siblingnya kemudian rotasi dan lanjutkan pengecekan dari tempat yang sama.Contoh Kasus 4 :Case 1 : Parent [Black]Node X[Black] Node Y [Black]Node Z [Red]Maka jalur rotasinya adalah RL-Rotation.Case 2 : Parent [Black]Node X[Black] Node Y [Black]Node Z [Red]Maka jalur rotasinya adalah RR-Rotation.Case 3 : Parent [Black]Node X[Black] Node Y [Black]Node Z1 [Red] Node Z2 [Red]Maka jalur rotasinya adalah RL-Rotation atau RR-Rotation.