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

סעיף א

נתונה פעולה רקורסיבית one הבאה:

public static void one(Node<Integer> n){
    if(n!=null)
    {
        if(n.getValue()% 2==0)
        {
            n.setNext(new Node<Integer> (0,n.getNext()));
            n = n.getNext();
        }
        one(n.getNext());
    }
}

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

chain → 10 → 12 → 5 → 3 → 6 → 1 → 4

סעיף ב

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

סעיף ג

נתונה פעולה רקורסיבית two הבאה:

public static void two(Node<Integer> n){
    if(n.getNext()!=null)
    {
        if(n.getNext().getValue()%2 == 0)
            n.setNext(n.getNext().getNext());
        else
            n=n.getNext();
        two(n);
    }
}

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

סעיף ד

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

סעיף ה

נתונה הפעולה three המשתמשת בפעולה two:

public static Node<Integer> three(Node<Integer>n){
    if(n == null) return null;
    if(n.getValue()%2 == 0)
        return three(n.getNext());
    else
    {
        two(n);
        return n;
    }
}

מה יהיה תוכן הרשימה chain אחרי ביצוע הפקודה הבאה: chain = three(chain);

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

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

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

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

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