נתונה הפעולה what. הפעולה מקבלת הפניה לשורש עץ בינרי של מספרים שלמים חיוביים bt ושני מספרים שלמים חיוביים num ו-count.
נתונה הפעולה 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 באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.