עץ בינארי של מספרים שלמים נקרא "עץ מיוחד" אם לכל צומת, כל הערכים בתת-העץ השמאלי שלו שונים מכל הערכים בתת-העץ הימני שלו. שני סעיפי חשיבה (קיום דוגמאות), סעיף כתיבת קוד, וסעיף סיבוכיות.
עץ בינארי של מספרים שלמים נקרא "עץ מיוחד" אם לכל צומת, כל הערכים בתת-העץ השמאלי שלו שונים מכל הערכים בתת-העץ הימני שלו. שני סעיפי חשיבה (קיום דוגמאות), סעיף כתיבת קוד, וסעיף סיבוכיות.
עץ "מיוחד" לדוגמה.
70(10(1,7), 51(_,212(22,17)))
עץ שאינו "מיוחד" — הערך 7 מופיע גם בתת-העץ השמאלי של 70 (כילד של 10) וגם בתת-העץ הימני שלו (כילד של 212).
70(10(1,7), 51(_,212(22,7)))
האם קיים "עץ מיוחד" שיש בו ערכים זהים? אם כן — ציירו את העץ, ואם לא — תסבירו מדוע עץ כזה לא קיים.
האם קיים עץ חיפוש בינרי שהוא לא "עץ מיוחד"? אם כן — ציירו את העץ, ואם לא — הסבירו מדוע עץ כזה לא קיים.
כתבו פעולה המקבלת הפניה לשורש של עץ בינרי ובודקת אם הוא "עץ מיוחד". אם כן — הפעולה תחזיר ערך true, ולא — הפעולה תחזיר ערך false.
public static boolean isSpecial(BinNode<Integer> root)
מהי סיבוכיות הפעולה שכתבתם בסעיף ג'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.