1 / 47

עצי AVL

עצי AVL. Prepared by: Hana Zimmerman-Karl Hanazimmermankarl@gmail.com. המטרה. מבנה נתונים שיתמוך בפעולות בסיסיות על קבוצות דינמיות: הוספה, חיפוש, מינימום/מקסימום, ביטול סריקה, מיון, בצורה יעילה ביותר. האם עצי חיפוש בינריים טובים מספיק ?. ביצועים במקרה הגרוע : הוספה – חיפוש –

sana
Download Presentation

עצי AVL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. עצי AVL Prepared by: Hana Zimmerman-Karl Hanazimmermankarl@gmail.com

  2. המטרה מבנה נתונים שיתמוך בפעולות בסיסיות על קבוצות דינמיות: • הוספה, • חיפוש, • מינימום/מקסימום, • ביטול • סריקה, • מיון, בצורה יעילה ביותר.

  3. האם עצי חיפוש בינריים טובים מספיק ? ביצועים במקרה הגרוע : • הוספה – • חיפוש – • מינימום/מקסימום – • ביטול – • סריקה – • מיון – גובה העץ – O(n) גובה העץ – O(n) גובה העץ – O(n) בגלל חיפוש העוקב -גובה העץ – O(n) יש לבקר כל איבר – O(n) הוספת n איברים - O(n2)

  4. הבעיה : • גובהו של עץ החיפוש הבינרי במקרה הגרוע – O(n)

  5. הפתרון • תחזוקה של העץ, כך שישאר נמוך גם לאחר שנבצע פעולות הוספה וביטול. • גובהו יהיה : • משפחה כזו של עצים : עצי AVL(Adel’son, Vel’skii, Landis : AVL – חוקרים רוסים שהיו הראשונים שחקרו את משפחת העצים הזו)

  6. רשימת הנושאים שנעבור : • תכונת עץ AVL • רוטציות (ימנית/שמאלית) • מקרים שונים בהוספה • מקרים שונים בביטול הגדרות רוטציות הוספה ביטול

  7. גובה של עץ בינרי T • מספר הצמתים במסלול הארוך ביותר מהשורש אל איזשהו עלה ב- T. • גובה של עץ ריק מוגדר להיות 0 . • (גובהו של עץ המכיל צומת יחיד (עלה) הוא 1.)

  8. גובהי תתי עצים – דוגמא 5 3 4 2 1 3 3 1 1 2 2 2 1 1 1 1

  9. גורם איזון של צומת בעץ בינרי - הגדרה גובה תת העץ השמאלישל הצומתפחותגובה תת העץ הימנישל הצומת -1 1 0 3 4 -2 2 1 3 0 3 0 0 0 0 0 0 0 1 1 2 2 -1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0

  10. גורם האיזון – הערה חשובה!!! גורם האיזון של צומת תלוי רק בגובהי שני תתי העצים שתחתיו, ואינו תלוי כלל בגורמי איזון של צמתים אחרים !!!!

  11. גורם איזון – תרגיל 1

  12. גורם איזון – תרגיל 2

  13. עץ AVL • עץ חיפוש בינרי, שבו גורם האיזון של כל צומת הוא 0, 1, או 1-. • (לכל צומת בעץ, הגבהים של שני תתי העצים שלו, אינם נבדלים ביותר מ- 1) • עץ כזה יקרא – עץ מאוזן.

  14. הוספת איבר עם מפתח K שלב 1 • הכנסת K לעץ, כעלה, בעץ חיפוש בינרי. תוך כדיהוספה, נשמור מצביע, לאב הקדום, הנמוך ביותר של K, שגורם האיזון שלו לפני ההכנסה, היה 1או 1-. • נסמן צומת זה ב- A. (אם אין צומת כזה, ברור, שגם לאחר הכנסת K, העץ יישאר מאוזן) • נסמן ב- B את הבן של A, בכיוון ההוספה של K.

  15. מציאת A ו- B - דוגמא 1 A נוסיף את 38 1 100 B A 1 87 237 B 54 0 94 180 275 10 0 68 91 98 108 199 245 301 3 22 0 62 75 K 38

  16. 100 K מציאת A ו- B תרגיל 1 450 נוסיף את 100 844 296 50 330 790 1000 38 190 303 472 73 231

  17. 111 K מציאת A ו- B - תרגיל 2 נוסיף את 111 77 57 140 20 69 188 101 10 37 64 76 90 121 167 199 0 15 30 44 130 80 100 158 174 190 200

  18. K 327 מציאת A ו- B - תרגיל 3 נוסיף את 327 158 88 281 55 101 300 190 21 66 99 141 174 222 297 328 8 28 169 182 201 223 285 299 325 341

  19. הוספת איבר עם מפתח K שלב 2 • בדיקה אם בעקבות הכנסת K העץ הפך להיות לא מאוזן. • העץ הפך להיות לא מאוזן אם גורם האיזון של אחד הצמתים הפך להיות 2 או 2-. • מספיק לבדוק את גורם האיזון של A!

  20. 34 93 124 178 K 24 בדיקה - האם העץ עדיין מאוזן (1)? 109 66 145 A 1 6 38 71 103 117 131 165 189 3 8 68 73 גורם האיזון של A הפך ל- 2. האיזון הופר.

  21. בדיקה - האם העץ עדיין מאוזן (2)? 109 66 145 A 34 93 124 178 6 38 71 103 117 131 165 189 3 8 48 68 73 K גורם האיזון של A הפך ל- 0. העץ מאוזן.

  22. B 1 A 1 2 A 3T 2 1 1T 3T K K הוספת איבר לעץ AVLגורם איזון של A הפך ל- 2 מקרה א' 0 A 1 2 B 0 1 3T 0 2T 1T 2T Kמוכנס לתת-עץ שמאלי של A ולתת-עץ שמאלי של B

  23. 178 178 61 239 61 239 A 40 201 278 40 82 201 278 94 B 82 100 195 220 255 303 195 220 255 303 24 49 24 49 73 94 18 35 73 88 18 35 69 100 K 69 K הוספה – מקרה 1 - דוגמא B A 88

  24. הוספת איבר לעץ AVLגורם איזון של A הפך ל- 2 מקרה ב' K A 1 2 B 0 1- 3T 1T 2T Kמוכנס לתת-עץ שמאלי של A ולתת-עץ ימני של B

  25. A B 0 1- 2 A B 1- 2 1 3T 1T 1T 2T 2T 3T K K מקרה ב' – רוטציה אחת אינה מספיקה -2 1 0 1

  26. מתי ואילו גלגולים נבצע • מ- A, נלך שני צעדים במסלול לעבר העלה העמוק ביותר בתת העץ ש- A הוא השורש שלו. • לפי שני הצעדים האלה מחשבים את סוג הגלגול: לצעד הראשון נותנים את האות הראשונה ולצעד השני נותנים את האות השניה. • לאחר הגלגול, יש לעדכן את גורמי האיזון של הצמתים שבין אביו של K, ל-A. או עד לשורש (אם אין A)

  27. A 2 B 1- 4T C 1- 0 1T 1 2T 3T 2T 3T מקרה ב2 K K K מקרה ב' – מבט מפורט A 2 1 B 1- 0 4T C 1T 2T מקרה ב1

  28. A C A 1 2 1- C B A 0 B 1- 2 1- 4T 4T C B 1- 3T 3T 2T 1T 1T 0 4T 1T 2T 2T 3T K K K מקרה ב1 – גלגול LR - שתי רוטציות רוטציה LL (ימנית) על A רוטציה RR (שמאלית) על B 2 0 1- 0 1 1-

  29. C A A 2 1 1- C B A 0 B 1- 2 1- 4T 4T C B 1- 3T 1T 0 3T 1T 2T 4T 1T 2T 2T 3T K K K מקרה ב2 – גלגול LR שתי רוטציות רוטציה LL (ימנית)על A רוטציה RR שמאלית על B 2 -1 1- 0 0 1

  30. 178 178 61 239 61 239 A 40 201 278 40 201 278 94 94 195 220 255 303 24 49 195 220 255 303 49 24 82 100 100 88 B 18 35 73 88 88 18 35 82 90 K 90 73 K הוספה – מקרה ב2 - דוגמא רוטציה RR (שמאלית) על B A B

  31. 178 178 61 239 61 239 A 40 88 201 278 40 201 278 94 A 195 220 255 303 24 49 82 195 220 255 303 24 49 100 94 88 73 18 35 18 35 100 90 90 K K הוספה – מקרה ב2 – דוגמא - המשך רוטציה LL (ימנית) על A 82 73

  32. הוספת איבר לעץ AVL מקרה ג'נדרש גלגול RR 1 A 0 B 3T 2T 1T Kמוכנסלתת-עץ ימני של A ולתת-עץ ימני של B K

  33. הוספת איבר לעץ AVL מקרה ד'נדרש גלגול RL 1- A 0 B 3T 2T 1T Kמוכנס לתת-עץ ימני של A ולתת-עץ שמאלי של B K

  34. ביטול איבר מעץ AVL- 3 מקרים : מקרה א' • גורם האיזון של האבא היה 0 לפני הביטול,ובעיקבות הביטול הוא משתנה ל- 1 או 1-. • גובה תת העץ שהאבא הוא שורשו – אינו משתנה ולכן אין השפעה על שאר העץ.

  35. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ביטול איבר מעץ AVL – מקרה א' 13 9 17 5 11 15 19 1 2 7 10 12 14 16 18 20 K 1 3 6 8 גורם האיזון של האבא הופך מ- 0 ל- 1

  36. 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ביטול איבר מעץ AVL – מקרה א 13 9 17 5 11 15 19 -1 2 7 10 12 14 16 18 20 K 1 3 6 8 גורם האיזון של האבא הופך מ- 0 ל- 1-

  37. ביטול איבר מעץ AVL- 3 מקרים : מקרה ב' • גורם האיזון של האבא היה 1 או 1- לפני הביטול,ובעיקבות הביטול הוא משתנה ל- 0. • גובה תת העץ שהאבא הוא שורשו – קטן ב- 1 ולכן, יש השפעה על הסבא. יש לעדכן את גורם האיזון של הסבא, ולהמשיך לעדכן את העץ, לפי השינוי בגורם האיזון של הסבא.

  38. ביטול איבר מעץ AVL – מקרה ב' 13 1 9 1- 0 0 17 0 5 1 11 1- 15 0 0 19 -1 2 0 7 0 0 10 1 12 0 14 16 0 0 18 20 0 K 0 3 0 גורם האיזון של האבא הופך מ- 1- ל- 0. עולים בעץ ומשנים את גורמי האיזון של האבות, בהתאם למה שצריך

  39. 0 0 0 1 1- 1 1 -1 0 0 1 1- 0 1 0 0 0 0 0 ביטול איבר מעץ AVL – מקרה ב' 13 9 1 17 5 11 15 0 19 2 7 10 12 14 16 18 0 20 3 K גורם האיזון של האבא הופך מ- 1- ל- 0. עולים בעץ ומשנים את גורמי האיזון של האבות, בהתאם למה שצריך

  40. ביטול איבר מעץ AVL- 3 מקרים : מקרה ג' • גורם האיזון של האבא היה 1 או 1- לפני הביטול,ובעיקבות הביטול הוא משתנה ל- 2 או 2-. • תת העץ שהאבא הוא שורשו – אינו מאוזן, ויש לאזנו ע"י גלגול. לאחר הגלגול, גובהו של תת העץ יכול להפוך לנמוך ב- 1 (או לא להשתנות כלל) ולכן יתכן וצריך לעדכן את גורם האיזון של הסבא ולפעול בהתאם.

  41. ביטול איבר מעץ AVL – מקרה ג' 1 1 2 1 0 0 0 0 K 0 0 0 0 0 0 0 0 0 גורם האיזון של האבא הופך מ- 1 ל- 2.

  42. גלגול LL סביב צומת זה 1 1 1 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ביטול איבר מעץ AVL – מקרה ג' - המשך גורם האיזון של "האח" של הצומת המבוטל הוא 0 1- 0 2 1 0 0 0

  43. ביטול איבר מעץ AVL – מקרה ג' 1 1 2 1 0 0 0 0 K 0 0 0 0 0 0 0 0 גורם האיזון של האבא הופך מ- 1 ל- 2.

  44. 1 1 1 0 0 0 0 0 0 0 0 0 0 0 ביטול איבר מעץ AVL – מקרה ג' - המשך גורם האיזון של "האח" של הצומת המבוטל הוא 1 2 1 0 גלגול LL סביב צומת זה 1 2 2 0 0 0 1 1 0 0 0 0 0 0 יש לעדכן את גורם האיזון של האבא, ולבדוק אם יש צורך באיזון נוסף! 0 0 0 0

  45. 1 1 1- 0 0 0 0 0 0 0 0 0 0 0 ביטול איבר מעץ AVL – מקרה ג' - המשך גורם האיזון של "האח" של הצומת המבוטל הוא 1- נדרש גלגול LR 2 1 0 גלגול LL סביב צומת זה 2 1 1 0 2 0 0 1- 0 גלגול RR סביב צומת זה 0 0 0 0 0 יש לעדכן את גורם האיזון של האבא, ולבדוק אם יש צורך באיזון נוסף! 0 0 0 0

  46. 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 ביטול איבר מעץ AVL – מקרה ג' - המשך שוב גורם האיזון של "האח" הוא 1 גלגול LL סביב צומת זה 0 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 הגענו עד השורש – ולכן נסיים

  47. ביצועים של עצי AVL ביצועים במקרה הגרוע : • הוספה – • חיפוש – • מינימום/מקסימום – • ביטול – • סריקה – • מיון – גובה העץ – O(lgn) גובה העץ – O(lgn) גובה העץ – O(lgn) גובה העץ – O(lgn) יש לבקר כל איבר – O(n) הוספת n איברים - O(nlgn)

More Related