SlideShare a Scribd company logo
Red Black Tree
 Red Black Tree (RB-Tree)
 Sebagai alternatif ‘balance tree’ bagi AVL-Tree, oleh
karena itu RB-Tree memiliki sifat sebagai Binary Serach
Tree.
 RB-Tree, tidak sebaik AVL-Tree dalam hal ‘height-
balance ’, tetapi RB-Tree mempunyai keunggulan dalam
hal proses Insert dan Delete, dengan kata lain untuk
mempercepat proses Insert dan Delete, RB-Tree
mengorbankan kwalitas ‘height-balance ’.
Copyright Sunarya D. Marwah
Red Black Tree
Karakteristik RB-Tree
 Setiap node berwarna red atau black
 Setiap node red harus mempunyai anak black
 Setiap jalur dari root ke semua leaf harus
memiliki jumlah node black yang sama.
 Root berwarna black.
 NULL dihitung sebagai black.
Copyright Sunarya D. Marwah
Red Black Tree
 Insert
Misalkan: n = node-baru
p = parent dari n
gp = parent dari parent
u = uncle dari n
- Data baru n berwarna red
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan sederhana (1):
- (1a) Bila n = root,
n-color = black, selesai.
- (1b) Bila p.color = black,
n.color tidak berubah, selesai.
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan tidak sederhana (2)
- (2) If p.color == red:
- If u.color == red:
- Flip color: p.color = u.color = black.
gp.color = red.
Lanjutkan rebalancing pada gp
(bila belum selesai)
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan tidak sederhana (3)
- (3a) If p.color == red:
If u.color == black:
- If n == p.left and p == gp.left:
Single rotation: right(gp);
Flip color: p.color = black.
gp.color = red;
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan tidak sederhana (3)
- (3b) If p.color == red:
- If u.color == black:
- If n == p.right and p == gp.left:
Double rot. : left(p); right(gp);
Flip color: n.color = black.
gp.color = red;
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan tidak sederhana
Aturan diatas berlaku untuk keadaan
setangkup (mirror), yaitu:
- (3a) n == p.right and p == gp.right.
- (3b) n == p.left and p == gp.right.
Copyright Sunarya D. Marwah
Red Black Tree
 Contoh insert:
+65 +76 +71 +79 +82 +73 +84 +72 +77
+65 Kasus 1a.
+76 Kasus 1b.
Copyright Sunarya D. Marwah
76
65
65
Red Black Tree
+71 Kasus 3b
Flip color
Copyright Sunarya D. Marwah
76
65
71
71
65 76
71
65 76
71
65
76
Red Black Tree
+79 Kasus 2
Root harus black
Copyright Sunarya D. Marwah
71
65 76
79
71
65 76
79
71
65 76
79
Red Black Tree
+82 Kasus 3a
Copyright Sunarya D. Marwah
71
65 76
79
82
71
65 79
8276
Red Black Tree
+73 Kasus 2
Copyright Sunarya D. Marwah
71
65 79
8276
71
65 79
8276
73 73
Red Black Tree
+84 Kasus 1b
Copyright Sunarya D. Marwah
71
65 79
8276
71
65 79
8276
73 73 84
Red Black Tree
+72 Kasus 3a
Copyright Sunarya D. Marwah
71
65 79
8273
71
65 79
8276
73 72 8484
72
76
Red Black Tree
+77 Kasus 2
Rebalancing dilanjutkan pada gp
Copyright Sunarya D. Marwah
71
65 79
8273
71
65 79
8273
72 71 848476 76
77 77
Red Black Tree
+77 Kasus 3b
Rotasi
kanan
Copyright Sunarya D. Marwah
71
65 73
7972
71
65 79
8273
72 828476 76
77 77 84
Red Black Tree
Lanjutan +77 Rotasi kiri
Copyright Sunarya D. Marwah
71
65
73
79
72 8276
77 84
71
65 73
7972
8276
77 84
Red Black Tree
 Hasil insert:
+65 +76 +71 +79 +82 +73 +84 +72 +77
Copyright Sunarya D. Marwah
71
65
73
79
72 8276
77 84
Red Black Tree
 Delete
Misalkan: v = node yang dihapus
u = node pengganti
p = parent dari u
s = sibling dari u
z = child dari s (z keponakan u)
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan sederhana (1):
- (1a) Bila u = leaf dan u.color = red,
delete u, selesai.
- (1b) Bila u != leaf dan u.color = red dan
u.color = v.color, selesai.
 Bila u.color == black, keadaan menjadi tidak
sederhana
Copyright Sunarya D. Marwah
Red Black Tree
 Double black Node
Node v adalah node yang dihapus
Node u adalah node pengganti v.
Bila v.color = red, u.color = black.
Bila v.color = black, u.color = double black.
Copyright Sunarya D. Marwah
Red Black Tree
 Double black Node
Penandaan double black merupakan suatu
usaha secara sementara, memaksa bahwa seluruh
jalur memiliki jumlah black node yang sama.
Tetapi hal ini bukan merupakan penandaan yang
sah dan permanen, sehingga pengaturan RB-tree
(rotasi dan flip color) tetap harus dilakukan.
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan tidak sederhana (2):
 Bila node u (pengganti v) == black.
- Bila s.color = black dan ada satu z.color = red.
Lakukan perubahan sebagai berikut:
(2a) Single-rotation pada p, kemudian
flip-color z.color = black, s.color = red.
(2b) Double-rotation pada s, kemudian pada p,
kemudian z.color = black.
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan tidak sederhana (3):
- Bila s.color = black dan z.color = black.
Lakukan perubahan seperti pada insert.
Flip-color s.color dari black menjadi red,
p.color dari red menjadi black, selesai.
Bila p.color dari black menjadi double-black,
perubahan berlanjut dengan p.
Copyright Sunarya D. Marwah
Red Black Tree
 Keadaan tidak sederhana (4):
- Bila s.color = red.
Lakukan single-rotation pada p, flip-color
s.color dari red menjadi black, p.color dari
black menjadi red, maka kasus 4, dikonversi-
kan menjadi kasus 2 atau kasus 3 untuk
diselesaikan. Bila tidak, maka perubahan
berlanjut hingga p.
Copyright Sunarya D. Marwah
Red Black Tree
 Latihan
 Insert:
+65 +76 +71 +79 +82 +73 +84 +72 +77
 Delete:
-65 -76 -71 -79 -73 -72
Copyright Sunarya D. Marwah
Red Black Tree
 Hasil insert:
+65 +76 +71 +79 +82 +73 +84 +72 +77
A L G O R I T H M
Copyright Sunarya D. Marwah
71
65
73
79
72 8276
77 84
Red Black Tree
-65
Node pengganti (u) ?
Copyright Sunarya D. Marwah
71
65
73
79
72 8276
77 84
Red Black Tree
-65 Kasus 3
Copyright Sunarya D. Marwah
71
73
79
72 8276
77 84
Double black
Red Black Tree
-65 Lanjutan
Copyright Sunarya D. Marwah
71
73
79
72 8276
77 84
Red Black Tree
-65 Hasil akhir:
Copyright Sunarya D. Marwah
71
73
79
72 8276
77 84
Red Black Tree
-76 Kasus 1 (sederhana)
Copyright Sunarya D. Marwah
71
73
79
72 8276
77 84
Red Black Tree
-76 Hasil akhir:
Copyright Sunarya D. Marwah
71
73
79
72 8277
84
Red Black Tree
-71 Kasus 1 (sederhana)
Copyright Sunarya D. Marwah
71
73
79
72 8277
84
Red Black Tree
-71 Hasil akhir
Copyright Sunarya D. Marwah
72
73
79
8277
84
Red Black Tree
-79
Copyright Sunarya D. Marwah
72
73
79
8277
84
Red Black Tree
-79 Kasus 2
Copyright Sunarya D. Marwah
72
73
77
82
84
Red Black Tree
-79 Hasil akhir:
Copyright Sunarya D. Marwah
72
73
77
82
84
Red Black Tree
-82
Copyright Sunarya D. Marwah
72
73
77
82
84
Red Black Tree
-82 Kasus 3
Copyright Sunarya D. Marwah
72
73
77
84
Red Black Tree
-82 Hasil akhir:
Copyright Sunarya D. Marwah
72
73
77
84
Red Black Tree
-73
Copyright Sunarya D. Marwah
72
73
77
84
Red Black Tree
-73 Kasus 2
Hasil akhir:
Copyright Sunarya D. Marwah
72
77
84
77
8472
77
8472
Red Black Tree
-84 Kasus 3
Copyright Sunarya D. Marwah
77
72 84
Red Black Tree
-84 Kasus 3
Hasil akhir:
Copyright Sunarya D. Marwah
77
72
77
72
Red Black Tree
-72
-77 NULL = Tree kosong !
Copyright Sunarya D. Marwah
77
72
77
77
Red Black Tree
 Latihan
 Insert:
+13 +85 +15 +70 +20 +60 +30
+50 +65 +80 +90 +40 +10 +55
 Delete:
-10 -60 -70
Copyright Sunarya D. Marwah
Red Black Tree
 Insert: +10 s/d +13
Copyright Sunarya D. Marwah
Red Black Tree
 Insert: +10 s/d +16
Copyright Sunarya D. Marwah
Red Black Tree
 Insert: +10 s/d +24
Copyright Sunarya D. Marwah
Red Black Tree
 Insert: +10 s/d +40
Copyright Sunarya D. Marwah
Red Black Tree
 Jawaban Latihan
Insert:
Copyright Sunarya D. Marwah
Red Black Tree
 Jawaban Latihan
 Delete(10):
Copyright Sunarya D. Marwah
Red Black Tree
 Jawaban Latihan
 Delete(60):
Copyright Sunarya D. Marwah
Red Black Tree
 Jawaban Latihan
 Delete(60): (lanjutan)
Copyright Sunarya D. Marwah
Red Black Tree
 Jawaban Latihan
 Delete(60): (lanjutan)
Copyright Sunarya D. Marwah
Red Black Tree
 Jawaban Latihan
 Delete(70):
Copyright Sunarya D. Marwah
Red Black Tree
 Jawaban Latihan
 Delete(70): (lanjutan)
Copyright Sunarya D. Marwah

More Related Content

What's hot

Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan function
Erwin Setiawan
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
Siti Khotijah
 
soal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).pptsoal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).ppt
AmirahChiCwexNezz
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
Kelinci Coklat
 
Power Point Induksi Matematika
Power Point Induksi MatematikaPower Point Induksi Matematika
Power Point Induksi Matematika
nanasaf
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1BAIDILAH Baidilah
 
pewarnaan graf
pewarnaan grafpewarnaan graf
pewarnaan graf
rukmono budi utomo
 
Teknik riset operasi pertemuan 6
Teknik riset operasi pertemuan 6Teknik riset operasi pertemuan 6
Teknik riset operasi pertemuan 6Afrina Ramadhani
 
Kumpulan soal-dan-pembahasan-himpunan
Kumpulan soal-dan-pembahasan-himpunanKumpulan soal-dan-pembahasan-himpunan
Kumpulan soal-dan-pembahasan-himpunan
Dermawan12
 
Algoritma Backtracking
Algoritma BacktrackingAlgoritma Backtracking
Algoritma Backtracking
Ajeng Savitri
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
Bina Sarana Informatika
 
Himpunan matematika diskrit
Himpunan matematika diskritHimpunan matematika diskrit
Himpunan matematika diskrit
Zuhri Patria Siregar
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
Septi Ratnasari
 
Materi Struktur Data Tree
Materi Struktur Data TreeMateri Struktur Data Tree
Materi Struktur Data Tree
Meta N
 
Makalah metode posisi palsu
Makalah metode posisi palsuMakalah metode posisi palsu
Makalah metode posisi palsu
okti agung
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritriyana fairuz kholisa
 
Alternatif konversi basis ke basis teori bilangan
Alternatif konversi basis ke basis teori bilanganAlternatif konversi basis ke basis teori bilangan
Alternatif konversi basis ke basis teori bilangan960814
 
Soal konsep sistem informasi abc
Soal konsep sistem informasi   abcSoal konsep sistem informasi   abc
Soal konsep sistem informasi abc
Bima Indra Mulya
 

What's hot (20)

Contoh store procedure dan function
Contoh store procedure dan functionContoh store procedure dan function
Contoh store procedure dan function
 
Struktur Data Tree
Struktur Data TreeStruktur Data Tree
Struktur Data Tree
 
soal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).pptsoal latihan prinsip inklusi eksklusi (1).ppt
soal latihan prinsip inklusi eksklusi (1).ppt
 
7. Queue (Struktur Data)
7. Queue (Struktur Data)7. Queue (Struktur Data)
7. Queue (Struktur Data)
 
Power Point Induksi Matematika
Power Point Induksi MatematikaPower Point Induksi Matematika
Power Point Induksi Matematika
 
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1Menyederhanakan fungsi boolean dengan menggunakan metode quin1
Menyederhanakan fungsi boolean dengan menggunakan metode quin1
 
pewarnaan graf
pewarnaan grafpewarnaan graf
pewarnaan graf
 
Teknik riset operasi pertemuan 6
Teknik riset operasi pertemuan 6Teknik riset operasi pertemuan 6
Teknik riset operasi pertemuan 6
 
Kumpulan soal-dan-pembahasan-himpunan
Kumpulan soal-dan-pembahasan-himpunanKumpulan soal-dan-pembahasan-himpunan
Kumpulan soal-dan-pembahasan-himpunan
 
Algoritma Backtracking
Algoritma BacktrackingAlgoritma Backtracking
Algoritma Backtracking
 
Bab 4 aljabar boolean
Bab 4 aljabar booleanBab 4 aljabar boolean
Bab 4 aljabar boolean
 
Jawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihanJawaban Struktur data soal-latihan
Jawaban Struktur data soal-latihan
 
Himpunan matematika diskrit
Himpunan matematika diskritHimpunan matematika diskrit
Himpunan matematika diskrit
 
Graf Pohon
Graf PohonGraf Pohon
Graf Pohon
 
Materi Struktur Data Tree
Materi Struktur Data TreeMateri Struktur Data Tree
Materi Struktur Data Tree
 
Makalah metode posisi palsu
Makalah metode posisi palsuMakalah metode posisi palsu
Makalah metode posisi palsu
 
queue antrian
queue antrianqueue antrian
queue antrian
 
Aljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskritAljabar boolean MK matematika diskrit
Aljabar boolean MK matematika diskrit
 
Alternatif konversi basis ke basis teori bilangan
Alternatif konversi basis ke basis teori bilanganAlternatif konversi basis ke basis teori bilangan
Alternatif konversi basis ke basis teori bilangan
 
Soal konsep sistem informasi abc
Soal konsep sistem informasi   abcSoal konsep sistem informasi   abc
Soal konsep sistem informasi abc
 

Viewers also liked

Red black trees1109
Red black trees1109Red black trees1109
Red black trees1109
Pravin Dsilva
 
Red black tree
Red black treeRed black tree
Red black tree
Rajendran
 
Red black tree
Red black treeRed black tree
Red black tree
uos lahore
 
Algebra 1 2.8 Algebraic Proof
Algebra 1 2.8 Algebraic ProofAlgebra 1 2.8 Algebraic Proof
Algebra 1 2.8 Algebraic ProofJaqueline Vallejo
 
Insertion in RED BLACK TREE
Insertion in RED BLACK TREEInsertion in RED BLACK TREE
Insertion in RED BLACK TREE
nikhilarora2211
 
Logic gates with laws
Logic gates with lawsLogic gates with laws
Logic gates with laws
nikhilarora2211
 
Red black trees presentation
Red black trees presentationRed black trees presentation
Red black trees presentation
Dexter Paul Gumahad
 
10 Red-Black Trees
10 Red-Black Trees10 Red-Black Trees
10 Red-Black Trees
Andres Mendez-Vazquez
 
Red black trees
Red black treesRed black trees
Red black trees
Maira Shahnawaz
 
Red black tree
Red black treeRed black tree
Red black tree
Dr Sandeep Kumar Poonia
 
B-Tree
B-TreeB-Tree
B tree
B treeB tree
B tree
Rajendran
 
Fundamentals of data structures ellis horowitz & sartaj sahni
Fundamentals of data structures   ellis horowitz & sartaj sahniFundamentals of data structures   ellis horowitz & sartaj sahni
Fundamentals of data structures ellis horowitz & sartaj sahniHitesh Wagle
 
Indexing and-hashing
Indexing and-hashingIndexing and-hashing
Indexing and-hashingAmi Ranjit
 
B Trees
B TreesB Trees
Best for b trees
Best for b treesBest for b trees
Best for b trees
DineshRaaja
 
Indexing and hashing
Indexing and hashingIndexing and hashing
Indexing and hashingJeet Poria
 

Viewers also liked (20)

Red black trees1109
Red black trees1109Red black trees1109
Red black trees1109
 
Red Black Trees
Red Black TreesRed Black Trees
Red Black Trees
 
Red black tree
Red black treeRed black tree
Red black tree
 
Red black tree
Red black treeRed black tree
Red black tree
 
Algebra 1 2.8 Algebraic Proof
Algebra 1 2.8 Algebraic ProofAlgebra 1 2.8 Algebraic Proof
Algebra 1 2.8 Algebraic Proof
 
Insertion in RED BLACK TREE
Insertion in RED BLACK TREEInsertion in RED BLACK TREE
Insertion in RED BLACK TREE
 
Logic gates with laws
Logic gates with lawsLogic gates with laws
Logic gates with laws
 
Red black trees presentation
Red black trees presentationRed black trees presentation
Red black trees presentation
 
10 Red-Black Trees
10 Red-Black Trees10 Red-Black Trees
10 Red-Black Trees
 
Red black trees
Red black treesRed black trees
Red black trees
 
Red black tree
Red black treeRed black tree
Red black tree
 
B-Tree
B-TreeB-Tree
B-Tree
 
B tree long
B tree longB tree long
B tree long
 
B tree
B treeB tree
B tree
 
B+ Tree
B+ TreeB+ Tree
B+ Tree
 
Fundamentals of data structures ellis horowitz & sartaj sahni
Fundamentals of data structures   ellis horowitz & sartaj sahniFundamentals of data structures   ellis horowitz & sartaj sahni
Fundamentals of data structures ellis horowitz & sartaj sahni
 
Indexing and-hashing
Indexing and-hashingIndexing and-hashing
Indexing and-hashing
 
B Trees
B TreesB Trees
B Trees
 
Best for b trees
Best for b treesBest for b trees
Best for b trees
 
Indexing and hashing
Indexing and hashingIndexing and hashing
Indexing and hashing
 

More from Sunarya Marwah

Struktur data 09 (double ended heap)
Struktur data 09 (double ended heap)Struktur data 09 (double ended heap)
Struktur data 09 (double ended heap)Sunarya Marwah
 
Struktur data 08 (heap)
Struktur data 08 (heap)Struktur data 08 (heap)
Struktur data 08 (heap)Sunarya Marwah
 
Struktur data 07 (b tree)
Struktur data 07 (b tree)Struktur data 07 (b tree)
Struktur data 07 (b tree)Sunarya Marwah
 
Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Sunarya Marwah
 
Struktur data 04 (binary tree)
Struktur data 04 (binary tree)Struktur data 04 (binary tree)
Struktur data 04 (binary tree)Sunarya Marwah
 
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)Sunarya Marwah
 
Struktur data 02 (tipe data abstrak dan queue)
Struktur data 02 (tipe data abstrak dan queue)Struktur data 02 (tipe data abstrak dan queue)
Struktur data 02 (tipe data abstrak dan queue)Sunarya Marwah
 
Struktur data 01 (pointer dan linked list
Struktur data 01 (pointer dan linked listStruktur data 01 (pointer dan linked list
Struktur data 01 (pointer dan linked listSunarya Marwah
 

More from Sunarya Marwah (9)

Struktur data 09 (double ended heap)
Struktur data 09 (double ended heap)Struktur data 09 (double ended heap)
Struktur data 09 (double ended heap)
 
Struktur data 08 (heap)
Struktur data 08 (heap)Struktur data 08 (heap)
Struktur data 08 (heap)
 
Struktur data 07 (b tree)
Struktur data 07 (b tree)Struktur data 07 (b tree)
Struktur data 07 (b tree)
 
Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)Struktur data 05 (bs avl tree)
Struktur data 05 (bs avl tree)
 
Struktur data 04 (binary tree)
Struktur data 04 (binary tree)Struktur data 04 (binary tree)
Struktur data 04 (binary tree)
 
Struktur data 03 (stack)
Struktur data 03 (stack)Struktur data 03 (stack)
Struktur data 03 (stack)
 
Struktur data 02 (tipe data abstrak dan queue)
Struktur data 02 (tipe data abstrak dan queue)Struktur data 02 (tipe data abstrak dan queue)
Struktur data 02 (tipe data abstrak dan queue)
 
Struktur data 01 (pointer dan linked list
Struktur data 01 (pointer dan linked listStruktur data 01 (pointer dan linked list
Struktur data 01 (pointer dan linked list
 
Struktur dataquadtree
Struktur dataquadtreeStruktur dataquadtree
Struktur dataquadtree
 

Struktur data 06 (red black tree)

  • 1. Red Black Tree  Red Black Tree (RB-Tree)  Sebagai alternatif ‘balance tree’ bagi AVL-Tree, oleh karena itu RB-Tree memiliki sifat sebagai Binary Serach Tree.  RB-Tree, tidak sebaik AVL-Tree dalam hal ‘height- balance ’, tetapi RB-Tree mempunyai keunggulan dalam hal proses Insert dan Delete, dengan kata lain untuk mempercepat proses Insert dan Delete, RB-Tree mengorbankan kwalitas ‘height-balance ’. Copyright Sunarya D. Marwah
  • 2. Red Black Tree Karakteristik RB-Tree  Setiap node berwarna red atau black  Setiap node red harus mempunyai anak black  Setiap jalur dari root ke semua leaf harus memiliki jumlah node black yang sama.  Root berwarna black.  NULL dihitung sebagai black. Copyright Sunarya D. Marwah
  • 3. Red Black Tree  Insert Misalkan: n = node-baru p = parent dari n gp = parent dari parent u = uncle dari n - Data baru n berwarna red Copyright Sunarya D. Marwah
  • 4. Red Black Tree  Keadaan sederhana (1): - (1a) Bila n = root, n-color = black, selesai. - (1b) Bila p.color = black, n.color tidak berubah, selesai. Copyright Sunarya D. Marwah
  • 5. Red Black Tree  Keadaan tidak sederhana (2) - (2) If p.color == red: - If u.color == red: - Flip color: p.color = u.color = black. gp.color = red. Lanjutkan rebalancing pada gp (bila belum selesai) Copyright Sunarya D. Marwah
  • 6. Red Black Tree  Keadaan tidak sederhana (3) - (3a) If p.color == red: If u.color == black: - If n == p.left and p == gp.left: Single rotation: right(gp); Flip color: p.color = black. gp.color = red; Copyright Sunarya D. Marwah
  • 7. Red Black Tree  Keadaan tidak sederhana (3) - (3b) If p.color == red: - If u.color == black: - If n == p.right and p == gp.left: Double rot. : left(p); right(gp); Flip color: n.color = black. gp.color = red; Copyright Sunarya D. Marwah
  • 8. Red Black Tree  Keadaan tidak sederhana Aturan diatas berlaku untuk keadaan setangkup (mirror), yaitu: - (3a) n == p.right and p == gp.right. - (3b) n == p.left and p == gp.right. Copyright Sunarya D. Marwah
  • 9. Red Black Tree  Contoh insert: +65 +76 +71 +79 +82 +73 +84 +72 +77 +65 Kasus 1a. +76 Kasus 1b. Copyright Sunarya D. Marwah 76 65 65
  • 10. Red Black Tree +71 Kasus 3b Flip color Copyright Sunarya D. Marwah 76 65 71 71 65 76 71 65 76 71 65 76
  • 11. Red Black Tree +79 Kasus 2 Root harus black Copyright Sunarya D. Marwah 71 65 76 79 71 65 76 79 71 65 76 79
  • 12. Red Black Tree +82 Kasus 3a Copyright Sunarya D. Marwah 71 65 76 79 82 71 65 79 8276
  • 13. Red Black Tree +73 Kasus 2 Copyright Sunarya D. Marwah 71 65 79 8276 71 65 79 8276 73 73
  • 14. Red Black Tree +84 Kasus 1b Copyright Sunarya D. Marwah 71 65 79 8276 71 65 79 8276 73 73 84
  • 15. Red Black Tree +72 Kasus 3a Copyright Sunarya D. Marwah 71 65 79 8273 71 65 79 8276 73 72 8484 72 76
  • 16. Red Black Tree +77 Kasus 2 Rebalancing dilanjutkan pada gp Copyright Sunarya D. Marwah 71 65 79 8273 71 65 79 8273 72 71 848476 76 77 77
  • 17. Red Black Tree +77 Kasus 3b Rotasi kanan Copyright Sunarya D. Marwah 71 65 73 7972 71 65 79 8273 72 828476 76 77 77 84
  • 18. Red Black Tree Lanjutan +77 Rotasi kiri Copyright Sunarya D. Marwah 71 65 73 79 72 8276 77 84 71 65 73 7972 8276 77 84
  • 19. Red Black Tree  Hasil insert: +65 +76 +71 +79 +82 +73 +84 +72 +77 Copyright Sunarya D. Marwah 71 65 73 79 72 8276 77 84
  • 20. Red Black Tree  Delete Misalkan: v = node yang dihapus u = node pengganti p = parent dari u s = sibling dari u z = child dari s (z keponakan u) Copyright Sunarya D. Marwah
  • 21. Red Black Tree  Keadaan sederhana (1): - (1a) Bila u = leaf dan u.color = red, delete u, selesai. - (1b) Bila u != leaf dan u.color = red dan u.color = v.color, selesai.  Bila u.color == black, keadaan menjadi tidak sederhana Copyright Sunarya D. Marwah
  • 22. Red Black Tree  Double black Node Node v adalah node yang dihapus Node u adalah node pengganti v. Bila v.color = red, u.color = black. Bila v.color = black, u.color = double black. Copyright Sunarya D. Marwah
  • 23. Red Black Tree  Double black Node Penandaan double black merupakan suatu usaha secara sementara, memaksa bahwa seluruh jalur memiliki jumlah black node yang sama. Tetapi hal ini bukan merupakan penandaan yang sah dan permanen, sehingga pengaturan RB-tree (rotasi dan flip color) tetap harus dilakukan. Copyright Sunarya D. Marwah
  • 24. Red Black Tree  Keadaan tidak sederhana (2):  Bila node u (pengganti v) == black. - Bila s.color = black dan ada satu z.color = red. Lakukan perubahan sebagai berikut: (2a) Single-rotation pada p, kemudian flip-color z.color = black, s.color = red. (2b) Double-rotation pada s, kemudian pada p, kemudian z.color = black. Copyright Sunarya D. Marwah
  • 25. Red Black Tree  Keadaan tidak sederhana (3): - Bila s.color = black dan z.color = black. Lakukan perubahan seperti pada insert. Flip-color s.color dari black menjadi red, p.color dari red menjadi black, selesai. Bila p.color dari black menjadi double-black, perubahan berlanjut dengan p. Copyright Sunarya D. Marwah
  • 26. Red Black Tree  Keadaan tidak sederhana (4): - Bila s.color = red. Lakukan single-rotation pada p, flip-color s.color dari red menjadi black, p.color dari black menjadi red, maka kasus 4, dikonversi- kan menjadi kasus 2 atau kasus 3 untuk diselesaikan. Bila tidak, maka perubahan berlanjut hingga p. Copyright Sunarya D. Marwah
  • 27. Red Black Tree  Latihan  Insert: +65 +76 +71 +79 +82 +73 +84 +72 +77  Delete: -65 -76 -71 -79 -73 -72 Copyright Sunarya D. Marwah
  • 28. Red Black Tree  Hasil insert: +65 +76 +71 +79 +82 +73 +84 +72 +77 A L G O R I T H M Copyright Sunarya D. Marwah 71 65 73 79 72 8276 77 84
  • 29. Red Black Tree -65 Node pengganti (u) ? Copyright Sunarya D. Marwah 71 65 73 79 72 8276 77 84
  • 30. Red Black Tree -65 Kasus 3 Copyright Sunarya D. Marwah 71 73 79 72 8276 77 84 Double black
  • 31. Red Black Tree -65 Lanjutan Copyright Sunarya D. Marwah 71 73 79 72 8276 77 84
  • 32. Red Black Tree -65 Hasil akhir: Copyright Sunarya D. Marwah 71 73 79 72 8276 77 84
  • 33. Red Black Tree -76 Kasus 1 (sederhana) Copyright Sunarya D. Marwah 71 73 79 72 8276 77 84
  • 34. Red Black Tree -76 Hasil akhir: Copyright Sunarya D. Marwah 71 73 79 72 8277 84
  • 35. Red Black Tree -71 Kasus 1 (sederhana) Copyright Sunarya D. Marwah 71 73 79 72 8277 84
  • 36. Red Black Tree -71 Hasil akhir Copyright Sunarya D. Marwah 72 73 79 8277 84
  • 37. Red Black Tree -79 Copyright Sunarya D. Marwah 72 73 79 8277 84
  • 38. Red Black Tree -79 Kasus 2 Copyright Sunarya D. Marwah 72 73 77 82 84
  • 39. Red Black Tree -79 Hasil akhir: Copyright Sunarya D. Marwah 72 73 77 82 84
  • 40. Red Black Tree -82 Copyright Sunarya D. Marwah 72 73 77 82 84
  • 41. Red Black Tree -82 Kasus 3 Copyright Sunarya D. Marwah 72 73 77 84
  • 42. Red Black Tree -82 Hasil akhir: Copyright Sunarya D. Marwah 72 73 77 84
  • 43. Red Black Tree -73 Copyright Sunarya D. Marwah 72 73 77 84
  • 44. Red Black Tree -73 Kasus 2 Hasil akhir: Copyright Sunarya D. Marwah 72 77 84 77 8472 77 8472
  • 45. Red Black Tree -84 Kasus 3 Copyright Sunarya D. Marwah 77 72 84
  • 46. Red Black Tree -84 Kasus 3 Hasil akhir: Copyright Sunarya D. Marwah 77 72 77 72
  • 47. Red Black Tree -72 -77 NULL = Tree kosong ! Copyright Sunarya D. Marwah 77 72 77 77
  • 48. Red Black Tree  Latihan  Insert: +13 +85 +15 +70 +20 +60 +30 +50 +65 +80 +90 +40 +10 +55  Delete: -10 -60 -70 Copyright Sunarya D. Marwah
  • 49. Red Black Tree  Insert: +10 s/d +13 Copyright Sunarya D. Marwah
  • 50. Red Black Tree  Insert: +10 s/d +16 Copyright Sunarya D. Marwah
  • 51. Red Black Tree  Insert: +10 s/d +24 Copyright Sunarya D. Marwah
  • 52. Red Black Tree  Insert: +10 s/d +40 Copyright Sunarya D. Marwah
  • 53. Red Black Tree  Jawaban Latihan Insert: Copyright Sunarya D. Marwah
  • 54. Red Black Tree  Jawaban Latihan  Delete(10): Copyright Sunarya D. Marwah
  • 55. Red Black Tree  Jawaban Latihan  Delete(60): Copyright Sunarya D. Marwah
  • 56. Red Black Tree  Jawaban Latihan  Delete(60): (lanjutan) Copyright Sunarya D. Marwah
  • 57. Red Black Tree  Jawaban Latihan  Delete(60): (lanjutan) Copyright Sunarya D. Marwah
  • 58. Red Black Tree  Jawaban Latihan  Delete(70): Copyright Sunarya D. Marwah
  • 59. Red Black Tree  Jawaban Latihan  Delete(70): (lanjutan) Copyright Sunarya D. Marwah