Your SlideShare is downloading. ×
Struktur data 06 (red black tree)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Struktur data 06 (red black tree)

394
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
394
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
40
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

×