SlideShare uma empresa Scribd logo
1 de 59
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

Mais conteúdo relacionado

Mais procurados

Sistem pakar fuzzy logic
Sistem pakar fuzzy logicSistem pakar fuzzy logic
Sistem pakar fuzzy logicIKHSAN MAHRURI
 
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
 
B. menentukan model matematika dari soal cerita
B.  menentukan model matematika dari soal ceritaB.  menentukan model matematika dari soal cerita
B. menentukan model matematika dari soal ceritaSMKN 9 Bandung
 
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart Matematika
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart MatematikaAlgoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart Matematika
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart MatematikaJujun Muhamad Jubaerudin
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorialSiti Khotijah
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)zachrison htg
 
Partisi matriks untuk menghitung nilai eigen (Bagian I)
Partisi matriks untuk menghitung nilai eigen (Bagian I)Partisi matriks untuk menghitung nilai eigen (Bagian I)
Partisi matriks untuk menghitung nilai eigen (Bagian I)bernypebo
 
Fuzzy fungsi keanggotaan
Fuzzy fungsi keanggotaanFuzzy fungsi keanggotaan
Fuzzy fungsi keanggotaanRoziq Bahtiar
 
Materi 4 penyelesaian spl tiga atau lebih variabel
Materi 4 penyelesaian spl tiga atau lebih variabelMateri 4 penyelesaian spl tiga atau lebih variabel
Materi 4 penyelesaian spl tiga atau lebih variabelradar radius
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Aprioridedidarwis
 
Deret Taylor dan McLaurin
Deret Taylor dan McLaurinDeret Taylor dan McLaurin
Deret Taylor dan McLaurinFerdhika Yudira
 
STATISTIKA-Regresi dan korelasi
STATISTIKA-Regresi dan korelasiSTATISTIKA-Regresi dan korelasi
STATISTIKA-Regresi dan korelasiYousuf Kurniawan
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03KuliahKita
 
Matematika Diskrit - 09 graf - 06
Matematika Diskrit - 09 graf - 06Matematika Diskrit - 09 graf - 06
Matematika Diskrit - 09 graf - 06KuliahKita
 
Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02KuliahKita
 
Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02KuliahKita
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskritsaid zulhelmi
 

Mais procurados (20)

Sistem pakar fuzzy logic
Sistem pakar fuzzy logicSistem pakar fuzzy logic
Sistem pakar fuzzy logic
 
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
 
B. menentukan model matematika dari soal cerita
B.  menentukan model matematika dari soal ceritaB.  menentukan model matematika dari soal cerita
B. menentukan model matematika dari soal cerita
 
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart Matematika
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart MatematikaAlgoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart Matematika
Algoritma Cara Cepat Mencari Akar-akar Persamaan Kuadrat | Flowchart Matematika
 
relasi himpunan
relasi himpunanrelasi himpunan
relasi himpunan
 
Matematika Diskrit kombinatorial
Matematika Diskrit  kombinatorialMatematika Diskrit  kombinatorial
Matematika Diskrit kombinatorial
 
Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)Graf ( Matematika Diskrit)
Graf ( Matematika Diskrit)
 
Partisi matriks untuk menghitung nilai eigen (Bagian I)
Partisi matriks untuk menghitung nilai eigen (Bagian I)Partisi matriks untuk menghitung nilai eigen (Bagian I)
Partisi matriks untuk menghitung nilai eigen (Bagian I)
 
Fuzzy fungsi keanggotaan
Fuzzy fungsi keanggotaanFuzzy fungsi keanggotaan
Fuzzy fungsi keanggotaan
 
STATISTIK INDUSTRI 1 - TEORI PROBABILITAS
STATISTIK INDUSTRI 1 - TEORI PROBABILITASSTATISTIK INDUSTRI 1 - TEORI PROBABILITAS
STATISTIK INDUSTRI 1 - TEORI PROBABILITAS
 
Materi 4 penyelesaian spl tiga atau lebih variabel
Materi 4 penyelesaian spl tiga atau lebih variabelMateri 4 penyelesaian spl tiga atau lebih variabel
Materi 4 penyelesaian spl tiga atau lebih variabel
 
Algoritma Apriori
Algoritma AprioriAlgoritma Apriori
Algoritma Apriori
 
Deret Taylor dan McLaurin
Deret Taylor dan McLaurinDeret Taylor dan McLaurin
Deret Taylor dan McLaurin
 
STATISTIKA-Regresi dan korelasi
STATISTIKA-Regresi dan korelasiSTATISTIKA-Regresi dan korelasi
STATISTIKA-Regresi dan korelasi
 
Graf pohon (bagian ke 6)
Graf pohon (bagian ke 6)Graf pohon (bagian ke 6)
Graf pohon (bagian ke 6)
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
Matematika Diskrit - 09 graf - 06
Matematika Diskrit - 09 graf - 06Matematika Diskrit - 09 graf - 06
Matematika Diskrit - 09 graf - 06
 
Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02Matematika Diskrit - 07 teori bilangan - 02
Matematika Diskrit - 07 teori bilangan - 02
 
Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02
 
Pohon(tree) matematika diskrit
Pohon(tree) matematika diskritPohon(tree) matematika diskrit
Pohon(tree) matematika diskrit
 

Destaque (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
 

Mais de 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
 

Mais de 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