• Tidak ada hasil yang ditemukan

Think Different Materi ASD 2014 pertemuan_19__

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Materi ASD 2014 pertemuan_19__"

Copied!
21
0
0

Teks penuh

(1)
(2)

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

(3)
(4)

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

(5)

Insert

Kasus 1: node N menjadi node root. Warnanya

diubah menjadi hitam

(6)

Insert

Kasus 2:Orang tua dari N, yaitu P berwarna hitam.

Tidak ada perubahan warna apapun karena sudah sesuai RBT

N

P

G

(7)

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.

(8)

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

(9)

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

(10)

INSERT

Rotasi terdiri dari 2 macam

Left Rotation (Rotasi kiri)

(11)

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

(12)

Insert(5)

5

Left rotation 2

Kasus 3

4 Left rotation

(13)

Insert(8)

5 6

Left rotation 2

7

Kasus 2

(14)

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.

(15)

Delete

Leaf nodes:

(16)

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

(17)

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

(18)

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

(19)

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

(20)

Kasus 1

Kalau S (C) merah: lakukan double

rotation dan recolour

B

P

S

X

A C D

C

S

P

B

X

A

(21)

Kasus 2:Salah satu atau kedua

anak X warnanya merah

Lakukan left rotation

Referensi

Dokumen terkait

Menambah sebuah node pada doubly linked list. Menghapus sebuah node dari doubly

• Untuk menambah data pada linked list, harus diketahui head pointer (pHead), pointer yang menunjuk node sebelum tempat penyisipan (pPre) data yang akan

Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar. Jika data sama,

• Penentuan bilangan positif atau negatif • Penentuan bilangan ganjil atau genap. • Buat algoritma pertukaran Nilai

Atribut ini menunjukan bahwa fungsi atau method bisa diakses oleh kelas lain dalam satu paket dan hanya kelas lain yang merupakan subclass nya pada paket yang berbeda. •

termasuk operasi yang dapat dilakukan pada data

4.Jika yang discan adalah operator (sebut opr1), maka  Pop 1 buah elemen teratas dari stack, simpan dalam variable var1.  Pop 1 buah elemen teratas dari stack, simpan dalam

 Teknik menyusuri tiap node dalam sebuah tree secara sistematis, sehingga semua node dapat dan hanya satu kali saja dikunjungi3.  Ada tiga