Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 - גמישות בבינאריות גמישות בעומק - עץ חיפוש בינארי: ממוצע O(log n) גרוע ביותר (O(n - היינו רוצים לשמור את העץ מאוזן תמיד Data Structures, CS, TAU - 5.10.

Similar presentations


Presentation on theme: "1 - גמישות בבינאריות גמישות בעומק - עץ חיפוש בינארי: ממוצע O(log n) גרוע ביותר (O(n - היינו רוצים לשמור את העץ מאוזן תמיד Data Structures, CS, TAU - 5.10."— Presentation transcript:

1 1 - גמישות בבינאריות גמישות בעומק - עץ חיפוש בינארי: ממוצע O(log n) גרוע ביותר (O(n - היינו רוצים לשמור את העץ מאוזן תמיד Data Structures, CS, TAU - 5.10 יישום קבוצות באמצעות עצים מאוזנים - קשיחות בבינאריות קשיחות בעומק

2 2 הגדרה: 1) לכל צומת פנימי 2 או 3 ילדים 2) כל מסלול משורש לעלה - באותו אורך ייצוג קבוצה מסודרת: - האלמנטים נשמרים בעלים, מסודרים בסדר עולה משמאל לימין. - הילדים ממוספרים (3,2,1) משמאל לימין. - בכל צומת פנימי שומרים את המפתח הנמוך ביותר בתת העץ האמצעי ו(אם צריך) הנמוך ביותר בתת העץ הימני דוגמה: 613 17 - 11 9 5 - 5296 1317 חציצים (בין כל זוג איברים) Data Structures, CS, TAU - 5.11 שימוש בעצי 2-3 (B-trees)

3 3 תכונות: INSERT,DELETE,FIND, FINDMIN.MEMBER, O(logN) Worst Case :MEMBERלך על פי הערכים (כמו עץ חיפוש בינארי) :INSERT v - צומת חדש p - צריך להיות אבא של v g - אבא של p (סבא של v) - הכנס v כבן נוסף של p - אם כעת ל p שלושה ילדים - גמרת. - אם ל p יש ארבעה ילדים: פצל p ל- p שמאל ו- ‘p מימין ושתול את ‘p כבן של g Data Structures, CS, TAU - 5.12

4 4 לצורך שתילה של v ב p צריך לדעת: 1) מצביע ל- v 2) ערך הנמוך ביותר בתת העץ של v שים לב: פרט למקרה יחידי (שמאלי ביותר והכי למטה), כל השתילות הן של צומת שלא השמאלי ביותר!!! כלומר, תמיד מוסיפים בן שהוא אח ימני לבן הראשון l1l1 l2l2 t1t1 t2t2 t3t3 l1l1 l2l2 t1t1 t2t2 t3t3 t’ 1 - t1t1 l’ 1 - t2t2 t3t3 l2l2 l1l1 Data Structures, CS, TAU - 5.13

5 5 715 18 - 12 9 6 - 6397 1518 הכנסת 8 9 - 15 - - 12 63879 18 17 - 8 - 15 Data Structures, CS, TAU - 5.14 דוגמה ל-INSERT

6 6 אפשרות א: 1) מצא מקומו של x 2) שתול את x באביו במעבר מלמטה למעלה מצריך: 1) מעבר מעלה מטה - מעבר מטה מעלה 2) התייחסות להורים אפשרות ב: שתילה רקורסיבית של x בתת העץ של node פרמטרים:x ערך לשתילה. node תת העץ שבו תבוצע ההשתלה. ערכים מוחזרים: Pnew - מצביע לתת עץ חדש לימינו של node low - הערך הקטן ביותר בתת העץ של Pnew חשוב: לוודא שפרמטרים וערכים מוחזרים מדוייקים. Data Structures, CS, TAU - 5.15 ביצוע של INSERT(x)

7 7 - שימוש ברקורסיה כמו קודם. - בדיקות לגבי השורש 1) בדיקה האם העץ ריק או בעל איבר בודד וטיפול מתאים. 2) במקרה של עץ רגיל, רקורסיה עשוייה לחזור עם צומת חדש שמועמד להיות אח לשורש הקודם. צריך ליצור שורש חדש !!! Data Structures, CS, TAU - 5.16 טיפול במקרי קצה

8 8 v - צומת p - אב u - דוד - השמט v מ p 1) אם ל v שני אחים: השמט וסיים. 2) אם ל v אח בודד: א) אם ל u שלושה בנים: p יאמץ אחד מבני הדוד ב) אם ל u שני בנים: u יאמץ את האח של v ועכשיו p ערירי צריך רקורסיבית להשמיטו p v 1 v d p a u c b p b a u d c 2א2א p a v u c b c u b a p 2ב2ב Data Structures, CS, TAU - 5.17 DELETE

9 9 פונקציה DELETE1 : לוקחת מצביע ל node ומשמיטה את x מתת העץ של node - היישום לא כולל עדכון ערכים נמוכים. - לשם עדכון: צריך להחזיר את הערך הנמוך ביותר בתת העץ! - עדכון כלפי מעלה חייב להמשך גם אם לא משמיטים הצומת הספציפי. 3 3 45 4 פונקציה DELETE: קוראת ל DELETE1 עם השורש ובודקת מקרי קצה: א) אם בעץ יש צומת אחד או אם ריק. ב) אם התוצאה היא צומת בודד. Data Structures, CS, TAU - 5.18 יישום ב-AHU


Download ppt "1 - גמישות בבינאריות גמישות בעומק - עץ חיפוש בינארי: ממוצע O(log n) גרוע ביותר (O(n - היינו רוצים לשמור את העץ מאוזן תמיד Data Structures, CS, TAU - 5.10."

Similar presentations


Ads by Google