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

סעיף א

נתונה הפעולה 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) באופן כללי?

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

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

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

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