לפניכם שתי הפעולות הרקורסיביות 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 באופן כללי?

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

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

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

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←