1 / 9

עצים בינאריים - תזכורת

1. 2. 3. 4. 5. 6. 1. 1. עץ בינארי שלם (complete) עץ בינארי מלא שבו כל העלים באותו עומק. עץ בינארי מלא (full) לכל צומת פנימי 2 בנים. 2. 3. 2. 3. 6. 7. 4. 5. 4. 5. 6. 7. עצים בינאריים - תזכורת. דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים גובה של צומת (עץ)

roana
Download Presentation

עצים בינאריים - תזכורת

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. 1 2 3 4 5 6 1 1 עץ בינארי שלם (complete) עץ בינארי מלא שבו כל העלים באותו עומק עץ בינארי מלא (full) לכל צומת פנימי 2 בנים 2 3 2 3 6 7 4 5 4 5 6 7 עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים גובה של צומת (עץ) עומק של צומת amirrub@cs - אמיר רובינשטיין

  2. עצים בינאריים – מימוש ע"י רשימות מקושרות • בעלים - שדות המצביעים יכילו NULL. • ניתן להחזיק בכל צומת גם מצביע לאב. amirrub@cs - אמיר רובינשטיין

  3. סיורים בעצים הדגמה:http://nova.umuc.edu/~jarc/idsv/ amirrub@cs - אמיר רובינשטיין

  4. הסיבוכיות בשני המימושים: זמן- O(n) ( אם do_something דורשת O(1) ) מקום- )גובה העץO(. amirrub@cs - אמיר רובינשטיין

  5. תרגיל 1 סטודנט הפעיל סיורים inorder ו- postorder על עץ שהיה ברשותו. כעבור זמן מה, הוא גילה שאיבד את העץ, אך יש עדיין בידו את תוצאות הסיורים. עזרו לסטודנט לשחזר את העץ. האם תמיד הדבר אפשרי? inorder : 2 6 4 7 1 3 8 5 9 10 preorder : 1 2 4 6 7 3 5 8 9 10 amirrub@cs - אמיר רובינשטיין

  6. תרגיל 2 • נתון עץ בינארי, שבכל צומת בו יש מצביעים גם להורים. • כיצד ניתן לממש סיור בעץ בסיבוכיות מקום נוסף O(1)? • פתרון • נחזיק שני מצביעים: current ו- last, שיצביעו בכל רגע לצומת הנוכחי בו אנו נמצאים, ולצומת הקודם בו היינו, בהתאמה. • סיור inorder לדוגמא, יתבצע בדומה לקוד (הלא רקורסיבי) שהוצג קודם, אבל ללא שימוש מחסנית. • בכל פעם שנעלה להורה v, נבדוק האם עלינו אליו משמאל או מימין: • - אם עלינו משמאל, נבקר ב- v, ונמשיך בסיור לתת העץ הימני של v. • - אם עלינו מימין, סיימנו לבקר בתת העץ ש- v הוא שורשו, לכן נעלה לאב של v. amirrub@cs - אמיר רובינשטיין

  7. המסלול הכבד ביותר בעץ • נתון עץ בעל n צמתים, לכל צומת יש מפתח, ושני מצביעים לבנים. מותר להוסיף שדות נוספים לצמתים לצורך הפתרון. • הציעו אלגוריתם לחישוב ערכו של המסלול הכבד ביותר משורש לעלה כלשהו(המסלול שסכום המפתחות של צמתיו הוא מקסימלי). על האלגוריתם להדפיס מסלול זה. • סיבוכיות דרושה – O(n). Key • דוגמאות לשימוש בסיורים ע"מ לחשב תכונות של עץ בינארי • חישוב מספר הצמתים בעץ בינארי int count (node *p) { if (!p) return 0; return (1 + count (p  left) + count (p  right)); } amirrub@cs - אמיר רובינשטיין

  8. עץ עץ בינארי עץ חיפוש עץ מאוזן עץ טרנארי AVL 2-3 עצי חיפוש - מימוש למבנה הנתונים "מילון" amirrub@cs - אמיר רובינשטיין

  9. פעולות על עץ חיפוש בינארי T: Find(T,x) Insert(T,x) Delete(T,x) פעולות אלה צריכות לשמור על התכונה שלעיל ! עצי חיפוש בינאריים עץ חיפוש בינארי הינו עץ בינארי עם התכונה הבאה: בהינתן צומת עם מפתח X, כל הצמתים עם מפתחות גדולים יותר נמצאים בתת העץ הימני, וכל הצמתים עם מפתחות קטנים יותר נמצאים בתת העץ השמאלי. הדגמה:http://nova.umuc.edu/~jarc/idsv/ סיבוכיות כל הפעולות הנ"ל: )גובה העץO( מקרה גרוע: O(n) מקרה טוב: O(logn) מקרה ממוצע: O(logn) amirrub@cs - אמיר רובינשטיין

More Related