DEFINISI
Red-Black Tree adalah Binary Search Tree dengan menyimpan data tambahan yaitu warna (Merah atau Hitam).
Syarat yang harus dipenuhi oleh sebuah Red-Black Trees antara lain:
1. Setiap Node harus mempunyai warna Merah atau
hitam
2. Root berwarna hitam
3. Setiap nill node diberi warna hitam
4. Jika sebuah node merah maka kedua anaknya harus
hitam
INSERT
Proses insert pada Red-Black Trees sama seperti
proses insert pada Binary Search Trees:
1. Cari posisi dari node baru dimulai dari root
2. Berikan warna
merah
kepada node tersebut.
3. Periksa apakah setelah dilakukan insert tree
Insert
• Kasus 1: node N menjadi node root. Warnanya
diubah menjadi hitam
Insert
• Kasus 2:Orang tua dari N, yaitu P berwarna hitam.
Tidak ada perubahan warna apapun karena sudah sesuai RBT
N
P
G
Insert
• Kasus 3: node N adalah node baru dan punya
parent (P) serta uncle (U) yang warnanya merah. Diganti warna P dan U menjadi hitam dan merubah G menjadi merah,tapi karena G adalah root diubah menjadi hitam.
Insert
• Kasus 4: Orang tua P merah namun paman U hitam
simpul baru N adalah anak kiri dari P dan P adalah anak kiri dari kakek G. Dilakukan right rotation
kemudian dilakukan perubahan warna P hitam
Insert
• Kasus 5: P berwarna merah namun U berwarna
hitam, juga N merupakan anak kanan dari P dan P adalah anak kiri dari G.Dilakukan left rotation dulu untuk baru dilakukan right rotation sesuai dengan kasus 4.
N
INSERT
Rotasi terdiri dari 2 macam
•
Left Rotation (Rotasi kiri)
INSERT
Insert(1) 1
Kasus 1 1
Insert(2)
2
Kasus 2 1
Insert(3)
Left rotation 1 2
Insert(4) 2
3
Ubah warna root
2 3 1
Insert(5)
5
Left rotation 2
Kasus 3
4 Left rotation
Insert(8)
5 6
Left rotation 2
7
Kasus 2
Delete
• Proses delete pada RBT sama dengan proses
delete pada BST
• Jika yang didelete adalah node dengan warna
merah maka tree tersebut masih tetap RBT. Jika
node yang didelete memiliki 1 anak berwarna merah maka ganti warna anak tersebut menjadi hitam.
• Jika proses delete tersebut tidak menghasilkan
sebuah RBT maka perbaiki (Fixup). Hal ini terjadi karena proses delete dilakukan terhadap node yang berwarna hitam.
Delete
Leaf nodes:
Top-Down Deletion
• Jika node yang didelete hitam melanggar aturan
5
• Harus dipastikan node yang didelete adalah merah. • Top-down traversal mulai root (untuk mencari node
yang didelete): X: visited node
P: parent S: sibling
B
P
S
X
A C D
Kasus yang timbul
• P merah
• X dan S hitam
• 2 kasus:
– 1. kedua anak X (A & B) adalah hitam
– 2. X punya sedikitnya 1 anak warna merah (A, B, – atau keduanya merah)
B
P
S
X
Kasus 1: Kedua anak X warnanya
hitam
•
Tergantung anak S (C & D):
–
Kalau C & D hitam: hanya tinggal menukar
warnanya.
B
P
S
X
A C D B
P
S
X
Kasus 1
Kalau anak S (D) Merah: lakukan single rotation
dan recolour
B
P
S
X
A C D
C
S
D
P
B
X
Kasus 1
•
Kalau S (C) merah: lakukan double
rotation dan recolour
B
P
S
X
A C D
C
S
P
B
X
A
Kasus 2:Salah satu atau kedua
anak X warnanya merah
• Lakukan left rotation