חזור לתיקייה: 02340218 - מבני נתונים 1

3 - עצים

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה
  • כללי
  • ייצוג עצים
  • ייצוג עצים בינאריים שלמים במערך
  • ייצוג עצים מסודרים ע"י עצים בינאריים

3 - עצים

02340218

מבני נתונים 1

רשימות הרצאה לקריאה בשבת

עצים

הופק מתוך תקיית התואר של שקד

uni-folder.vercel.app

הגדרה 1 (עומק של צומת)

תהי vvv צומת של עץ. העומק של vvv הוא מספר הקשתות משורש העץ אל vvv.

הגדרה 2 (גובה של צומת)

תהי vvv צומת בעץ. הגובה של vvv הוא מספר הקשתות מ-vvv לצאצא הרחוק ביותר של vvv (עלה)

הגדרה 3 (עץ בינארי)

עץ שבו לכל צומת שאינו עלה יש בן שמאלי ו/או בן ימני יקרא עץ בינארי.

משפט (הגדרה שקולה)

עץ יקרא בינארי   ⟺  \iff⟺ הוא מבנה:

  1. ריק (ללא צמתים), או
  2. מורכב משלושה חלקים: צומת הנקרא שורש, עץ בינארי הנקרא תת עץ שמאלי ועץ בינארי הנקרא תת עץ ימני.
הגדרה 4 (עץ בינארי מלא)

עץ בינארי יקרא מלא אם לכל צומת פנימי בו יש 2 בנים.

הגדרה 5 (עץ בינארי שלם)

עץ בינארי מלא אשר בו כל העלים באותו הגובה/עומק יקרא שלם.

הגדרה 6 (עץ בינארי כמעט שלם)

עץ בינארי שלם שהוצאו ממנו עלים ("מצד ימין") יקרא כמעט שלם.

הגדרה 7 (עץ מסודר)

עץ מכוון יקרא מסודר אם הבנים של כל צומת מסודרים (מימין לשמאל)

משפט (תכונות עץ בינארי שלם)

יהי עץ בינארי שלם בעל nnn צמתים, ℓ\ellℓ עלים וגובהו hhh. אזי:

  1. מספר הצמתים בעומק iii הינו ni=2in_{i}=2^ini​=2i.
  2. מספר העלים: ℓ=nh=2h\ell=n_{h}=2^hℓ=nh​=2h.
  3. מספר הצמתים: n=∑i=0hni=∑i=0h2i=2h+1−1n=\sum\limits_{i=0}^h n_{i}=\sum\limits_{i=0}^h 2^i=2^{h+1}-1n=i=0∑h​ni​=i=0∑h​2i=2h+1−1.
  4. הגובה: h=log⁡2(n+1)−1h=\log_{2}(n+1)-1h=log2​(n+1)−1
  5. מספר הצמתים הפנימיים: n−ℓ=2h−1=ℓ−1n-\ell=2^h-1=\ell-1n−ℓ=2h−1=ℓ−1.

ייצוג עצים

ייצוג עצים בינאריים שלמים במערך

  • בן שמאלי של צומת iii נמצא ב-2i2i2i.
  • בן ימני של צומת iii נמצא ב-2i+12i+12i+1.
  • אבא של צומת iii נמצא ב-⌊i2⌋\lfloor \frac{i}{2}\rfloor⌊2i​⌋.

ייצוג עצים מסודרים ע"י עצים בינאריים

אם לכל צומת דרגה d≥d\geqd≥ אז נוכל לשים מערך של NodesNodesNodes בתור ה-nextnextnext של העץ שלנו.
כדי לייצג עץ מדרגה כלשהי נוכל לייצג באמצעות עץ בינארי כאשר הבן השמאלי הוא הילד הראשון משמאל של הצומת והבן הימני הוא האח הבא של של הצומת.
​מבני הרצאה 3 - תמונה 1.png

hnew=∣pnew∣=#edgesold+#edgesbrother=pold+#edgesbrother≤hold+(d−1)hold=d⋅holdh_{new}=|p_{new}|=\#edges_{old}+\#edges_{brother}=p_{old}+\#edges_{brother}\leq h_{old}+(d-1)h_{old}=d\cdot h_{old}hnew​=∣pnew​∣=#edgesold​+#edgesbrother​=pold​+#edgesbrother​≤hold​+(d−1)hold​=d⋅hold​