אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2024 · אביב מועד א · שאלה 12כל שאלות המבחן ←
מבנים לינארייםרשימות מקושרות

נתונות שתי הפעולות What ו-Where המקבלות הפנייה לחוליה הראשונה של שרשרת חוליות:

public static Node<int> What(Node<int> chain, int x){
    while(chain!=null && chain.GetValue()% x == 0){
        chain = chain.GetNext();
    }
    if(chain == null)
        return null;

    Node<int> p = chain;
    Node<int> p1 = p.GetNext();
    while(p1 != null){
        if(p1.GetValue()% x == 0)
        {
            p.SetNext(p1.GetNext());
            p1.SetNext(null);
            p1 = p.GetNext();
        }
        else
        {
            p = p1;
            p1 = p1.GetNext();
        }
    }
    return chain;
}
public static void Where(Node<int> chain){
    Node<int> p = chain;
    while(p != null) {
        p.SetNext(What(p.GetNext(),p.GetValue()));
        p = p.GetNext();
    }
}

נתונה שרשרת חוליות הבאה:

chain: 4, 20, 5, 7, 8, 4, 6, 18

סעיף א

עקבו אחרי זימון הפעולה What(chain, 4) ורשמו מה תחזיר הפעולה.

סעיף ב

מה מבצעת הפעולה What באופן כללי?

סעיף ג

עקבו אחרי זימון הפעולה Where(chain) ורשמו איך תיראה השרשרת אחרי ביצוע. אין צורך במעקב אחרי זימון הפעולה What.

סעיף ד

האם אפשר לשנות סדר חוליות בשרשרת chain כך ששרשרת לא תשתנה אחרי זימון הפעולה Where? אם כן – רשמו את השרשרת אחרי שינוי, אם לא – הסבירו למה אי אפשר לבצע שינוי כזה.

סעיף ה

מה מבצעת הפעולה Where באופן כללי?

שאלות ותגובות על השאלה

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

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

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