Rules:
Saat membuat red-black tree, root adalah berwarna hitam
Saat menambah child, vertex berwarna merah
Vertex merah tidak dapat memiliki child/parent yang berwarna merah juga
Vertex hitam boleh memiliki child/parent yang berwarna hitam atau merah.
Pada saat melakukan penambahan node, apabila parent dan "uncle" dari node baru berwarna merah, parent dan "uncle" berubah menjadi hitam, lalu "kakek" dari node tersebut menjadi warna merah apabila bukan root
Pada kasus yang sama apabila parent dari node baru berwarna merah dan "uncle" dari node baru berwarna hitam, maka dilakukan rotasi ke arah "uncle" lalu grand-parent yang sebelum dirotasi berubah warna menjadi merah
Contoh:
60, 30, 90, 15, 48, 106, 74, 13, 1, 16, 216, 99
Insert 60
Root berwarna merah, maka warna diubah menjadi hitam.
Insert 30, 90 , tidak membuat root maka warna tetap merah
Insert 15
Vertex 15 dengan parent (30) berwarna merah menyalahi aturan dimana tidak boleh ada vertex merah yang memiliki anak dan atau parent yang berwarna merah. Dalam kasus ini, "uncle" (90) berwarna merah juga, maka hanya dilakukan pengubahan warna pada parent (30) dan "uncle" (90), lalu mengubah warna pada grand-parent (60).Grand-parent (60) adalah root, maka warna berubah lagi menjadi hitam kembali.
Insert 48, 106, 74.
Insert 13
Vertex 13 dengan parent (15) berwarna merah menyalahi aturan dimana tidak boleh ada vertex merah yang memiliki anak dan atau parent yang berwarna merah. Dalam kasus ini, "uncle" (48) berwarna merah juga, maka hanya dilakukan pengubahan warna pada parent (15) dan "uncle" (48), lalu mengubah warna pada grand-parent (30). Tidak seperti langkah tadi, grand-parent (30) tetap berwarna merah karena bukan merupakan root.
Insert 1
Vertex 1 dan parent (13) menyalahi aturan karena berwarna merah. "uncle" dari vertex 1 adalah kosong yang berarti berwarna hitam. Dalam kasus ini, vertex harus diputar ke arah warna hitam, warna grand-parent lama (15) menjadi merah, dan parent (13) menjadi hitam.
Insert 16, "uncle" (1) dan parent (15) menjadi merah, dan grand-parent (13) menjadi merah.
Grand-parent (13) dan great-grand-parent (30) sama sama berwarna merah, menyalahi aturan dan "uncle" dari vertex 13 (90) berwarna hitam, maka dilakukan rotasi ke arah 90, grand-parent dari 13 (60) menjadi merah, dan parent dari 13 (30) menjadi hitam.
Insert 216, "uncle" (74) dan parent (106) berubah menjadi hitam, grand-parent (90) menjadi merah dan menyalahi aturan dengan vertex 60...
"Uncle" dari vertex 90 (13) dan parent dari vertex 90 (60) sama sama berwarna merah, maka hanya dilakukan perubahan warna menjadi merah. Grand-parent dari 90 (30) berubah warna menjadi merah namun karena vertex 30 adalah root, warna tetap hitam.
Insert 99
Images : credits to skyconnectiva.com
skyconnectiva.com
binus.ac.id

























