לפניכם שתי הפעולות הרקורסיביות what ו-why. הפעולה what מקבלת הפניה לאחת מהחוליות בשרשרת חוליות של מספרים שלמים, והפעולה why מקבלת הפניה לחוליה ראשונה בשרשרת החוליות.
לפניכם שתי הפעולות הרקורסיביות what ו-why. הפעולה what מקבלת הפניה לאחת מהחוליות בשרשרת חוליות של מספרים שלמים, והפעולה why מקבלת הפניה לחוליה ראשונה בשרשרת החוליות.
public static Node<Integer> what (Node<Integer> p1)
{
if(p1.getNext() ==null)
return p1;
Node<Integer> p2 = what(p1.getNext());
if(p1.getValue() < p2.getValue())
return p1;
return p2;
}
public static void why(Node<Integer> chain)
{
if(chain.getNext()!=null)
{
Node<Integer>p = what(chain);
int temp=p.getValue();
p.setValue(chain.getValue());
chain.setValue(temp);
why(chain.getNext());
}
}
נתונה שרשרת חוליות הבאה (p1 מצביע על החוליה השלישית):
chain → 3, 4, 10*, 5, 8, 6 (* p1 מצביע לחוליה עם הערך 10)
סעיף א
מה יחזיר זימון הפעולה what(p1)? יש להראות מעקב אחר ביצוע הפעולה.
סעיף ב
מה מבצעת הפעולה what באופן כללי?
סעיף ג
עקבו אחרי זימון הפעולה why(chain) ורשמו איך תיראה השרשרת אחרי זימון. יש להראות מעקב אחרי ביצוע הפעולה why, אין צורך במעקב אחרי הזימונים של what.
סעיף ד
מה מבצע הפעולה why באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.