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

נתונה הפעולה what. הפעולה מקבלת הפניה לשורש עץ בינרי של מספרים שלמים חיוביים bt ושני מספרים שלמים חיוביים num ו-count.

public static boolean what(BinNode<Integer> bt, int num, int count)
{
    if(bt == null) return false;
    if(num < 1 || count < 1) return false;
    if(bt.getLeft()==null && bt.getRight()==null)
    {
        return bt.getValue() == num && count == 1;
    }
    return what(bt.getLeft(), num - bt.getValue(), count -1) ||
           what(bt.getRight(), num - bt.getValue(), count -1);
}

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

                 7
          /             \
         1               5
       /   \              \
      1     7              2
             \           /   \
              6         2     3
                       /
                      6

(שורש=7; שמאל: 1→{שמאל=1, ימין=7→ימין=6}; ימין: 5→ימין=2→{שמאל=2→שמאל=6, ימין=3})

סעיף א

מה תהיה תוצאת זימון הפעולה what(bt, 16, 4)? יש להראות מעקב אחרי ביצוע הפעולה what.

סעיף ב

תנו דוגמה לערכים של num ו-count כך שהזימון what(bt, num, count) יחזיר תוצאה שונה מזו שהתקבלה בסעיף א'.

סעיף ג

האם קיים ערך count>0 שעבורו הזימון what(bt, num, count) יחזיר ערך false לכל num>0? הסבירו את תשובתכם.

סעיף ד

תנו דוגמה לעץ בינרי של מספרים שלמים חיוביים bt שעבורו כל אחד משלושת הזימונים הבאים יחזיר ערך true:

what(bt, 2, 2) what(bt, 3, 3) what(bt, 4, 4)

סעיף ה

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

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

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

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

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