אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2024 · קיץ מועד א · שאלה 3כל שאלות המבחן ←
מבנים לינארייםרשימות מקושרות

שאלה זו מודפסת בשני נוסחים שקולים: Java (עמוד 5) ו-C# (עמוד 6). נתונה שרשרת חוליות lst מטיפוס שלם: lst → 1 → 3 → 5 → 3 → 1 → 9 → 4 → null. נתונות שתי הפעולות הרקורסיביות what (מקבלת רשימה וערך x) ו-guess (מקבלת רשימה) — הקוד המלא מודפס בשאלון ומובא כלשונו בכל תשובה.

public static Node<Integer> what (Node<Integer> lst, int x)
{
    if (lst == null)
        return null;
    Node<Integer> temp = what (lst.getNext(), x);
    if (lst.getValue() == x)
        return temp;
    lst.setNext (temp);
    return lst;
}

public static void guess (Node<Integer> lst)
{
    if (lst != null)   {
        Node<Integer> temp = what (lst.getNext(), lst.getValue());
        lst.setNext (temp);
        guess (lst.getNext());
    }
}

השרשרת lst:

השרשרת lst

lst → 1 → 3 → 5 → 3 → 1 → 9 → 4 → null
סעיף א(1)

נתונה הפעולה what (ראו הקוד לעיל). עקבו אחר הפעולה what (lst, 1), והציגו את השרשרת שהפעולה מחזירה.

סעיף א(2)

מה עושה הפעולה what? הסבירו את תשובתכם.

סעיף א(3)

מהי סיבוכיות הפעולה what? נמקו את תשובתכם.

סעיף ב(1)

נתונה הפעולה guess (ראו הקוד לעיל). עקבו אחר הפעולה guess (lst), והציגו את השרשרת lst בסיום הפעולה. בסעיף זה אין צורך לעקוב אחר הפעולה what.

סעיף ב(2)

מה עושה הפעולה guess? הסבירו את תשובתכם.

סעיף ב(3)

מהי סיבוכיות הפעולה guess? נמקו את תשובתכם.

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

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

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

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