לפניכם שתי הפעולות הרקורסיביות What ו-Why. הפעולה What מקבלת הפניה לאחת מהחוליות בשרשרת חוליות של מספרים שלמים, והפעולה Why מקבלת הפניה לחוליה ראשונה בשרשרת החוליות.
לפניכם שתי הפעולות הרקורסיביות What ו-Why. הפעולה What מקבלת הפניה לאחת מהחוליות בשרשרת חוליות של מספרים שלמים, והפעולה Why מקבלת הפניה לחוליה ראשונה בשרשרת החוליות.
public static Node<int> What (Node<int> p1)
{
if(p1.GetNext() ==null)
return p1;
Node<int> p2 = What(p1.GetNext());
if(p1.GetValue() < p2.GetValue())
return p1;
return p2;
}
public static void Why(Node<int> chain)
{
if(chain.GetNext()!=null)
{
Node<int>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 באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.