עץ בינארי

עץ בינארי הוא עץ, שבו לכל קודקוד יש לכל היותר שני בנים, ולכל קודקוד, פרט לקודקוד מסוים הנקרא שורש, אב יחיד. אבות ובנים מוגדרים בעץ כזה לפי הקשתות: a הוא אב של b, ו- b הוא בן של a, בדיוק כאשר יש קשת מ- a ל-b, ומרחקו של a מהשורש קטן ממרחקו של b מהשורש. קודקוד של עץ כזה נקרא גם צומת. הגדרה רקורסיבית לעץ בינארי: עץ בינארי הוא עץ ריק (ללא צמתים), או עץ המורכב משורש ושני תתי-עצים בינאריים, ימני ושמאלי. לעצים בינאריים שימושים שונים, שהבולטים שבהם הם עץ חיפוש בינארי ומבני נתונים כמו ערימה בינארית. השורש הוא, על-פי ההגדרה, הצומת היחיד שאין לו אב. המרחק של צומת מן השורש הוא הרמה של הצומת; רמת השורש היא 0. הרמה הגבוהה ביותר של צמתים בעץ נקראת רמת העץ. הגובה של העץ הוא אורכו של מסלול מהשורש לצומת בעל הרמה הגדולה ביותר. לעץ בעל צומת יחיד (השורש) גובה 0 ולעץ ריק גובה 1-. מספר הבנים של צומת נקרא הדרגה שלו (0, 1 או 2). אם לשני צמתים יש אב משותף, הם אחים; אחד מהם הוא הבן הימני, והשני הוא הבן השמאלי. האב של צומת a, וכן האבות הקדומים של אותו אב, נקראים אבות קדומים של a (זוהי הגדרה רקורסיבית). הצמתים ש- a הוא אב קדום שלהם, נקראים צאצאים של a, ויחד עם a הם יוצרים תת-עץ של העץ המקורי. לכל שני צמתים שאף אחד מהם אינו אב קדום של חברו, יש אב קדום בעל רמה מקסימלית בין כל האבות הקדומים של שניהם; זהו האב המשותף שלהם. צומת נטול בנים נקרא עלה, בעוד שכל צומת אחר הוא צומת פנימי. עלה a נמצא משמאל לעלה b, אם a הוא צאצא של הבן השמאלי של האב המשותף שלהם, בעוד ש-b הוא צאצא של הבן הימני. עץ שאין בו אף צומת נקרא עץ ריק. הקשתות בעצים בינאריים יכולות להיות לא מכוונות או מכוונות. במקרה שהקשתות מכוונות ייתכנו שתי אפשרויות: או שהקשתות מכוונות מאב לבן, או שהן מכוונות מכל בן אל האב שלו. לעצים בינאריים אפשר להוסיף תוכן, על ידי הצמדת נתונים לכל צומת של העץ. במקרה כזה, העץ עצמו הוא המבנה, והעץ בצירוף התוכן נקרא סתם "עץ". עצים שיש להם אותו מבנה (גם אם תכנים שונים) נקראים עצים שקולים. עץ בינארי מלא הוא עץ בו לכל צומת שאינו עלה יש שני בנים. עץ בינארי מושלם (נקרא גם "עץ שלם") הוא עץ בינארי מלא, בו כל העלים הם מאותה רמה. אם כל העלים הם ברמה n או n-1, ולא קיים עלה בעל רמה n שמשמאלו נמצא עלה בעל רמה n-1, אז העץ כמעט מושלם. עץ בינארי מאוזן מוגדר על פי רוב כעץ שבו ההפרש בין הגובה של שני תתי-עצים של אותו הצומת לעולם אינו גדול מאחד. עם זאת באופן כללי מגדירים אותו כעץ בו כל הרמה של כל עלה אינה הרבה יותר גבוהה מהרמה של כל עלה אחר, כאשר בכל שיטת איזון מגדירים באופן שונה את המשמעות של "הרבה יותר גבוהה". לעצים מאוזנים לפי ההגדרה הראשונה יש גובה חסום, השווה לערך השלם של log 2 ⁡ ( n ) {\displaystyle \log _{2}(n)} כאשר n הוא מספר הצמתים בעץ. עץ בינארי מנוון הוא עץ בו לכל צומת שאינו עלה יש בן אחד בלבד. מספר הצמתים n {\displaystyle n} בעץ בינארי מושלם ניתן בנוסחה n = 2 h + 1 − 1 {\displaystyle n=2^{h+1}-1} כאשר h {\displaystyle h} הוא גובה העץ. מספר הצמתים n {\displaystyle n} בעץ בינארי כמעט מושלם הוא בין n = 2 h {\displaystyle n=2^{h}} לבין n = 2 h + 1 − 1 {\displaystyle n=2^{h+1}-1} כאשר h {\displaystyle h} הוא גובה העץ. מספר העלים L {\displaystyle L} בעץ בינארי מושלם ניתן בנוסחה L = 2 h {\displaystyle L=2^{h}} כאשר h {\displaystyle h} הוא גובה העץ. בעץ בינארי כמעט מושלם, אם מספר הצמתים הוא n {\displaystyle n} אז מספר הצמתים הפנימיים הוא ⌈ n / 2 ⌉ {\displaystyle \left\lceil n/2\right\rceil } . בכל עץ לא ריק עם n 0 {\displaystyle n_{0}} עלים ו- n 2 {\displaystyle n_{2}} צמתים מדרגה 2 מתקיים n 0 = n 2 + 1 {\displaystyle n_{0}=n_{2}+1} .‏ עץ חיפוש עץ אדום שחור עץ AVL מדיה וקבצים בנושא עץ בינארי בוויקישיתוף עץ בינארי, באתר אנציקלופדיה למתמטיקה (באנגלית) עץ בינארי, באתר MathWorld (באנגלית) שקפים מקורס תבניות בעיצוב תכנה, אוניברסיטת ת"א. Mehta, Dinesh; Sartaj Sahni (2004). Handbook of Data Structures and Applications. Chapman and Hall. ISBN 1584884355.