Struktur data 06 (red black tree)

  • 344 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
344
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
33
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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