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

סעיף א

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

public static int why(BinNode<Integer> 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<Integer> what (int n){
    if (n == 0)
        return null;
    else
    {
        if (n % 2 == 0)
            return new BinNode<Integer>(what(n-1), n, null);
        else
        {
            BinNode<Integer> tree = what(n-1);
            if(tree!=null)
            {
                int val = why(tree);
                tree.setRight(new BinNode<Integer>(n + val));
            }
            return tree;
        }
    }
}
סעיף ג

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

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

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

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

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