סעיף א
נתונה הפעולה why הבאה:
public static Node<Integer> why(Node<Integer> chain, boolean flag)
{
int count = 0;
Node<Integer> p = chain;
while(p != null)
{
int x = p.getValue();
boolean f = (x % 2 ==0);
if( f == flag)
count ++;
p = p.getNext();
}
return new Node<Integer>(count);
}
נתונה שרשרת חוליות הבאה:
chain → 10 → 7 → 14 → 5 → 7 → 2 → 4
מה תחזיר הפעולה why(chain, false)? יש להראות מעקב אחרי ביצוע הפעולה why.
סעיף ב
נתונה הפעולה what הבאה:
public static void what(Node<Integer> chain)
{
Node<Integer> p = chain;
Node<Integer> temp;
while (p != null)
{
if(p.getValue()%2 ==0)
temp = why(p.getNext(), false);
else
temp = why(p.getNext(), true);
temp.setNext(p.getNext());
p.setNext(temp);
p = temp.getNext();
}
}
עקבו אחרי ביצוע זימון הפעולה what(chain) ורשמו איך תראה השרשרת אחרי זימון הפעולה.
יש להראות מעקב אחרי ביצוע הפעולה what, אין צורך במעקב אחרי why.
סעיף ג
מה מבצעות הפעולות what(chain) ו-why(chain,flag) באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.