24th May, 2016

Data Structure – Pertemuan 7 (Rangkuman)

Data Structure (Conclusion)

Red Black Tree (RBT)

RBT memiliki ‘External Node‘ di setiap leafnya yang disebut ‘Dummy Children‘.
Jika sebuah node di masukkan, maka node tersebut akan di masukkan ke salah satu external node RBT.

External node tidak memiliki value tertentu, hanya menjadi bagian dalam penghitungan algoritma didalam program saja.

Ciri – ciri Red Black Tree :

  1. Setiap node mempunyai warna, yaitu merah dan hitam
  2. Root selalu berwarna hitam
  3. Semua external node berwarna hitam
  4. Jika ada node yang berwarna merah, maka kedua anaknya berwarna hitam

Ciri ke-4 juga berarti :

  • Tidak ada node merah yang mempunyai parent merah
  • Setiap jalan dari root sampai external node, mempunyai jumlah warna hitam yang sama rata

RBT Opertaion : Insertion

  • Node baru selalu berwarna merah
  • Jika parentnya warna hitam, tidak ada pelanggaran
  • Jika parentnya warna merah, maka ada pelanggaran

RBT Insert Violation  Hanya perlu melakukan re-coloring.

RBT Insert Violation 2 Dilakukan Single Rotation

RBT Insert Violation 3 Dilakukan Double Rotation

 

RBT Operation : Deletion

RBT Delete Violation 4 Karena sibling dari double black node adalah merah, maka perlu dilakukan single rotation

RBT Delete Violation 5Karena sibling dari double black node adalah hitam, maka perlu dilakukan re-coloring

RBT Delete Violation 6 Karena sibling dari double black node adalah hitam dan keponakannya merah, maka perlu dilakukan double rotation

 

2 – 3 Tree (Bukan Binary Tree)

2 – 3 Tree adalah sebuah data struktur dimana setiap node dengan anaknya mempunyai antara 2 anak sampai 3 anak.
Jika node mempunyai 1 data, maka node memiliki 2 anak
Jika node mempunyai 2 data, maka node memiliki 3 anak
Setiap leaf mempunyai level yang sama rata

2 - 3 Tree Example

2 – 3 Tree Operation : Insertion

Insert 45 (Tidak mengubah)
2 - 3 Tree Insert 1

*GAMBAR ATAS DENGAN BAWAH TIDAK BERHUBUNGAN

Insert 75 (Berada di antara node 70 dan node 80, 90)
2 - 3 Tree Insert 2
Karena 80 berada di tengah, maka 80 naik
2 - 3 Tree Insert 3
80 naik, 75 dan 90 membuat node masing-masing
2 - 3 Tree Insert 4

 

2 – 3 Tree Operation : Deletion

Delete 23 (Tidak ada yang berubah)
2 - 3 Tree Delete 1
Delete 50. 40 menggantikan 50 (terbesar paling dekat dengan 50)
2 - 3 Tree Delete 2
30 turun mengisi data kosong disebelah 25
2 - 3 Tree Delete 3
Hasil akhir setelah Delete 50
2 - 3 Tree Delete 4

Leave a response

Your response:

Categories