השוואה בין עץ בינארי (Binary Tree) לעץ חיפוש בינארי (Binary Search Tree, BST)
מהו עץ בינארי?
- הגדרה – עץ שבו לכל צומת (Node) יש לכל היותר שני ילדים:
- ילד שמאלי (Left Child)
- ילד ימני (Right Child)
מבנה זה אינו מחייב שום סדר בין תת‑העצים שלו.(geeksforgeeks.org, he.wikipedia.org)
- לעץ בינארי ניתן לייחס תכונות נוספות (מלא, מושלם, כמעט־מושלם, מאוזן) אך הן אינן חלק מהגדרה בסיסית זו.
מהו עץ חיפוש בינארי (BST)?
- הגדרה – עץ בינארי המקיים תכונת סדר (Binary‑Search‑Tree Property):
- לכל צומת
v
‑―‑כל המפתחות שבתת‑העץ השמאלי קטנים ממפתחו שלv
. - כל המפתחות שבתת‑העץ הימני גדולים ממפתחו של
v
.
התכונה מאפשרת חיפוש, הכנסה ומחיקה בזמןO(h)
כאשרh
הוא גובה העץ.(geeksforgeeks.org, en.wikipedia.org, he.wikipedia.org)
- לכל צומת
- מונחים מקובלים:
- עברית – עץ חיפוש בינארי
- אנגלית – Binary Search Tree (ראשי־תיבות BST)
איזון (Balancing) וגובה (Height)
- גובה (Height) – מספר הקשתות במסלול הארוך ביותר מהשורש (Root) אל עלה (Leaf).
- גורם איזון (Balance Factor) –
height(left) − height(right)
של תת‑עצים. - עץ מאוזן – עץ שבו גבהי תת‑העצים בכל צומת אינם שונים ביותר מקבוע
c
(לרובc=1
).(geeksforgeeks.org)
עץ AVL
- הגדרה – עץ AVL (על שם Adelson‑Velsky ו‑Landis) הוא עץ חיפוש בינארי מאוזן‐עצמית (Self‑Balancing BST) שבו │balance factor│ ≤ 1 בכל צומת.(geeksforgeeks.org, geeksforgeeks.org)
- פעולות הכנסה/מחיקה מבוצעות כ‑BST רגיל, ואחריהן סיבובים (Rotations) לשמירת האיזון.
האם אפשר לומר “עץ AVL הוא BST מאוזן?”
כן. עץ AVL מקיים both – תכונת הסדר של BST וגם תנאי איזון קפדני. לכן הוא דוגמה קלאסית ל‑Balanced BST.
מילון מושגים
מונח עברי | Term (EN) | הגדרה קצרה |
---|---|---|
צומת | Node | יחידת המידע הבסיסית בעץ, הכוללת מפתח וקישורים לילדים |
שורש | Root | הצומת העליון שאין לו הורה |
עלה | Leaf | צומת ללא ילדים |
תת‑עץ | Subtree | עץ הנובע מצומת כלשהו וצאצאיו |
גובה | Height | אורך המסלול הארוך ביותר מן הצומת אל עלה |
גורם איזון | Balance Factor | הפרש גבהים בין תת‑העץ השמאלי לימני |
עץ מאוזן | Balanced Tree | עץ ש‑ balance factor בכל צומת חסום בקבוע. בד”כ 1 |
עץ AVL | AVL Tree | Self‑balancing BST with balance factor ≤ 1 |
סיכום קצר
עץ בינארי מתאר מבנה בלבד; עץ חיפוש בינארי מוסיף סדר, ו‑עץ AVL מוסיף איזון אוטומטי. לכן: כל AVL הוא BST, וכל BST הוא עץ בינארי, אך לא להפך.
מהו עץ צחי (Tsachi Tree)?
הגדרה – עץ צחי (ראשי תיבות: צומת חד‑יחידי/חד‑ילדי) הוא עץ בינארי שבו כל צומת שאינו עלה מחזיק ילד אחד בלבד – או שמאלי או ימני, אף פעם לא שניהם. במילים אחרות: עץ Pathological/ Degenerate, הבנוי למעשה כ‑Linked List.
מקבילות באנגלית
עברית | אנגלית מקובלת | הערה |
---|---|---|
עץ צחי | Degenerate Tree | מתאר עץ “פתולוגי” שבו h≈n-1 |
Pathological Tree | שם כללי למצבים קיצוניים |
מאפיינים מרכזיים
- גובה
h≈n−1
→ פעולות חיפוש/הכנסה/מחיקה על BST עלולות לרדת ל‑O(n)
. - נוצר למשל כאשר מוסיפים מפתחות בסדר עולה/יורד לעץ חיפוש בינארי.
- מקובל לראות בו anti‑pattern; עצים מאוזנים (AVL, Red‑Black, Treap, Splay) נועדו למנוע מצב כזה.
דוגמה
הכנסת הערכים [1,2,3,4,5]
ל‑BST ריק בתורם:
1
\
2
\
3
\
4
\
5
העץ הנ”ל הוא עץ צחי – כל צומת מחזיק בן ימני יחיד.
השוואה מהירה
תכונה | BST מאוזן טיפוסי | עץ צחי |
---|---|---|
מספר ילדים לצומת פנימי | ≤ 2 (לעיתים 2) | 1 בלבד |
גובה ממוצע | O(log n) |
O(n) |
ביצועי חיפוש גרועים | נדיר | תמיד במקרה הגרוע |
מקורות
- Wikipedia – Degenerate Tree
- GeeksforGeeks – Degenerate (Binary) Tree
- קורס “מבני נתונים”, אונ’ ת”א – יחידה 3, שקופיות “עצים פתולוגיים”