Operasi Insert Pada Red Black Tree
Red black tree merupakan salah satu tipe self balancing Binary Search Tree yang juga disebut sebagai simetris binary B-tree. Meskipun red black tree rumit, namun memiliki waktu terburuk yang efisien untuk digunakan pada saat melakukan search, insert dan delete dalam waktu .
Dalam artikel ini akan dibahas tentang operasi insert pada red black tree. Sebelum membahas tentang operasi insert pada red black tree perlu diketahui karakteristik red black tree :
Karakteristik red black tree :
- Setiap node memiliki warna red (merah) atau black (hitam).
- Warna node root selalu berwarna hitam.
- Semua node leaf berwarna hitam.
- Setiap node berwarna merah memiliki dua anak yang berwarna hitam.
- Setiap jalur dari root ke semua leaf harus memiliki jumlah node black yang sama.
Berikut ini adalah contoh dari red black tree :
Keterangan : box kuning merupakan karakteristik red black tree yang telah dijelaskan di atas.
Pada operasi insert ada 3 hal yang perlu diperhatikan :
- Pada saat melakukan insert node baru, aturannya sama dengan seperti melakukan insert node baru pada binary search tree.
- Setiap node baru yang di insert berwarna merah.
- Perbaiki pelanggaran red black tree yang terjadi pada saat operasi insert.
Misalkan :
Q = node baru yang di insert
P = parent dari Q
S = sibling dari P (uncle dari Q)
- Adapun kondisi yang terjadi pada saat insert adalah sebagai berikut :Jika Q = root maka warna Q = hitam.
- Jika warna P = hitam maka warna Q tidak berubah.
- Jika warna P = merah dan warna S = merah maka ubah warna P dan S menjadi hitam dan parent dari P menjadi merah.
Atau
Catatan : Jika GP merupakan root maka warnanya menjadi hitam sesuai dengan karakteristik 2.
- Jika warna P = merah dan warna S = hitam lakukan rotasi (single atau double) kemudian dari hasil akhir rotasi tersebut ubah warna P yang baru menjadi hitam dan anak (child) yang baru menjadi merah. Jika S tidak ada atau P tidak memiliki sibling maka S dianggap berwarna hitam (setiap eksternal node berwarna hitam) dan aturan pada point D ini berlaku.
- Rotasi single (single rotation) :
atau
atau
atau
- Rotasi double (double rotation)
atau
atau
atau
Referensi :
- Reema Thareja. (2014). Data Structure Using C. 02. OXFOR. New Delhi. ISBN : 9780198099307
Comments :