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

סעיף א

נתונה הפעולה Why המקבלת הפניה לשורש עץ בינארי של מספרים שלמים:

public static int Why(BinNode<int> t){
    if(!t.HasLeft()&&!t.HasRight()) return t.GetValue();
    if(t.HasLeft()) return Why(t.GetLeft());
    return Why(t.GetRight());
}

ציירו עץ בעל שישה צמתים שעבורו הפעולה תחזיר ערך ארבע. כל ערכי הצמתים שונים זה מזה.

סעיף ב

כתבו את הפעולה Why בצורה הלא רקורסיבית.

נתונה הפעולה What המקבלת מספר שלם וחיובי n. הפעולה משתמשת בפעולה Why.

public static BinNode<int> What (int n){
    if (n == 0)
        return null;
    else
    {
        if (n % 2 == 0)
            return new BinNode<int>(What(n-1), n, null);
        else
        {
            BinNode<int> tree = What(n-1);
            if(tree!=null)
            {
                int val = Why(tree);
                tree.SetRight(new BinNode<int>(n + val));
            }
            return tree;
        }
    }
}
סעיף ג

עקבו אחרי זימון הפעולה What(7) ורשמו מה תחזיר הפעולה. יש להראות את תוכן העץ בחזרה מכל קריאה רקורסיבית.

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

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

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

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