Download presentation
Presentation is loading. Please wait.
1
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר - צביעה מבטיחה שאין מסלול ארוך פי שניים מאחר מסלול ארוך פי שניים מאחר - מבנה : כל צומת מכיל : parent parent left left right right color color key key (CLR chapter 14)
2
Data Structures, CS, TAU, RB-Tree 2תכונות 1. כל צומת אדום או שחור 2. כל עלה (NIL) הוא שחור 3. אם צומת אדום שני ילדיו שחורים 4. כל מסלול פשוט מצומת לעלה מכיל מספר זהה של צמתים שחורים זהה של צמתים שחורים גובה שחור : מס ’ הצמתים השחורים מצומת לעלה ( לא כולל הצומת ). לעלה ( לא כולל הצומת ). סימון : סימון : BH(T)
3
Data Structures, CS, TAU, RB-Tree 3 NIL 3 77 10 NIL 71215 NIL 716 NIL 714 דוגמה לעץ אדום - שחור * מס ’ ליד צומת הוא גובה שחור של אותו צומת 2 11 1 1 1 Lemma 14.1 (CLR): A red-black tree with n internal nodes has height at most 2lg(n+1).
4
Data Structures, CS, TAU, RB-Tree 4 הוכחת הלמה : הוכחה : אינדוקציה ( מוכח מלא בספר ) אינטואיציה : - רב הצמתים שחורים - רב הצמתים שחורים - גובה שחור - אחיד : - גובה שחור - אחיד : מבחינת שחורים עץ מאוזן log - אדומים - רק תוספת ( לכל היותר מכפילים - אדומים - רק תוספת ( לכל היותר מכפילים כל מסלול ) כל מסלול )
5
Data Structures, CS, TAU, RB-Tree 5 רוטציות של עץ בינארי קטן X Y Y X Right_Rotate(T,y) Left_Rotate(T,x) גדול קטן אמצע עומק של עולה / יורד ב - 1 עומק של עולה / יורד ב - 1 עומק של אינו משתנה עומק של אינו משתנה
6
Data Structures, CS, TAU, RB-Tree 6 השפעת רוטציה על עומק העץ 7 11 918 1419 22 20 1217 x y 7 11 9 18 14 19 22 201217 x y Left_Rotate(T,x) Inorder doesn’t change change!
7
Data Structures, CS, TAU, RB-Tree 7 ביצוע Insert 1. הכנסת X במקום המתאים ( כמו בעץ בינארי ) ובצבע אדום. ובצבע אדום. 2. ביצוע תיקונים מלמטה למעלה - אם יש שני אדומים רציפים. אדומים רציפים.
8
Data Structures, CS, TAU, RB-Tree 8 תיקון צבעים ב - Insert - תיקון אם צומת אדום וגם אביו אדום - בתיקון : א ) הצפת אדום האב כלפי מעלה ( העברת הבעיה כלפי מעלה ) ( העברת הבעיה כלפי מעלה ) ב ) השכנת הבעיה במסגרת משפ ’ הסבא ע ” י התקזזות עם הדוד הסבא ע ” י התקזזות עם הדוד ( עצירת הבעיה ) ( עצירת הבעיה ) או : אם צומת אדום ואביו אדום האח שחור
9
Data Structures, CS, TAU, RB-Tree 9 דוד אדום - Case I החלף צבעים בין סבא לבניו x C B DA C x y D B A new x C A DB y A B C D
10
Data Structures, CS, TAU, RB-Tree 10 דוד שחור - Case II Left_Rotate(A), Right_Rotate(B) + החלף צבעים B C y Case II C B A y C A B x y y x A B C Case III x y - כל התכונות נשמרות - כל התכונות נשמרות - בעיה עלתה למעלה ( רק Case I) - בעיה עלתה למעלה ( רק Case I)
11
Data Structures, CS, TAU, RB-Tree 11 דוגמה ל - Insert 11 214 15 1 4 x y Case II 7 8 5 11 214 15 17 4 58 x y Case I :Node X was now inserted
12
Data Structures, CS, TAU, RB-Tree 12 דוגמה ל - Insert ( המשך ) Case III x 11 2 14 15 1 4 y 7 8 5 x 2 14 15 1 4 8 5 7 11
13
Data Structures, CS, TAU, RB-Tree 13 ביצוע Delete 1) מבצעים delete כמו בעץ חיפוש בינארי רגיל Y X Y - מושמט X - בנו 2) אם Y היה אדום כל תכונות RB נשמרו. עצור. עצור. 3) אם Y היה שחור בצע RB_DELETE_FIXUP(X) RB_DELETE_FIXUP(X) 3. א ) אם X אדום צבע בשחור וסיים
14
Data Structures, CS, TAU, RB-Tree 14 ביצוע Delete_Fixup X - שחור X - מקום שמעליו בוצעה השמטה - נחשוב על X כעל מכיל שחור + שחור חסר כל מסלול בעץ הוא חוקי כל מסלול בעץ הוא חוקי מטרה : להיפטר מהשחור המיותר יהי W אח של X ל - X יש אח כי X הוא שחור ( כפול )! מקרים : Case 1: W אדום החלף צבעי P(X), W ו - Left_Rotate(P(X)) Left_Rotate(P(X)) מוליך ל Case 1,2,3,4 כל המסלולים לתתי עצים באותו גובה שחור
15
Data Structures, CS, TAU, RB-Tree 15 ביצוע Delete_Fixup Case 2: W שחור + 2 בנים שחורים הורד שחור מ W ו - X והוסף ל - P(X) X שחור בודד W אדום שחור או אדום ( נהפך לשחור או לדו - שחור ) לדו - שחור ) P(X) Case 3: W שחור + בן שמאלי אדום + בן ימני שחור החלף צבעים בין W ובנו השמאלי ובצע Right_Rotate מצב 4
16
Data Structures, CS, TAU, RB-Tree 16 ביצוע Delete_Fixup Case 4: W שחור + בן ימני אדום שנה צבעים ו Left_Rotate(P(X)) מטפל בבעיה וגורם ללולאה להסתיים
17
Data Structures, CS, TAU, RB-Tree 17 דוגמה Delete_Fixup B B AD E C E C D A Case 1 x w new w A E Case 2 B D C AD E C B x w c c, new x/black x
18
Data Structures, CS, TAU, RB-Tree 18 דוגמה Delete_Fixup A E Case 3 B D C A E B D C x w c x new w c A B D Case 4 C E E A D B C x wcc ‘c‘c‘c‘c
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.