אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2025 · אביב מועד ב · שאלה 9כל שאלות המבחן ←
עציםעצים בינאריים

נתונה הפעולה Mystery. הפעולה מקבלת הפניה לשורש עץ בינרי של מספרים שלמים חיוביים bt.

public static void Mystery(BinNode<int> bt)
{
    Mystery(bt, "");
}
private static void Mystery(BinNode<int> bt, string st)
{
    st = st + " " + bt.GetValue();
    if (bt.GetLeft()==null && bt.GetRight()==null)
    {
        Console.WriteLine(st);
    }
    else
    {
        if (bt.GetLeft() != null)
            Mystery (bt.GetLeft(), st);
        if (bt.GetRight() != null)
            Mystery (bt.GetRight(), st);
    }
}

נתון העץ הבינרי bt1 הבא:

              18
         /          \
        6            20
       /            /   \
      1            17    13
       \           /
        3         1

(שורש=18; שמאל: 6→שמאל=1→ימין=3; ימין: 20→{שמאל=17→שמאל=1, ימין=13})

סעיף א

מה תהיה תוצאת זימון הפעולה Mystery(bt1)? יש להראות מעקב אחרי ביצוע הפעולה Mystery.

סעיף ב

לפעולה Mystery הועבר כפרמטר הפניה לשורש של עץ בינרי bt2. הפלט שהתקבל לאחר זימון הפעולה Mystery(bt2) היה בדיוק בסדר זה (משמאל לימין):

70 20 50 40 30
70 20 50 60
70 100 120

ציירו את העץ הבינרי bt2 שהועבר כפרמטר לפעולה.

סעיף ג

לפעולה Mystery הועבר כפרמטר הפניה לשורש של עץ חיפוש בינרי bt3. האם ייתכן שהפלט שהתקבל אחרי זימון הפעולה Mystery(bt3) יהיה זהה לפלט שהתקבל אחרי הזימון Mystery(bt2)? אם כן – ציירו עץ חיפוש בינרי bt3. אם הדבר בלתי אפשרי – הסבירו מדוע.

סעיף ד

מה מבצעת הפעולה Mystery באופן כללי?

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי