שאלה זו מודפסת בשני נוסחים שקולים: Java (עמוד 5) ו-C# (עמוד 6). נתונה שרשרת חוליות lst מטיפוס שלם: lst → 1 → 3 → 5 → 3 → 1 → 9 → 4 → null. נתונות שתי הפעולות הרקורסיביות what (מקבלת רשימה וערך x) ו-guess (מקבלת רשימה) — הקוד המלא מודפס בשאלון ומובא כלשונו בכל תשובה.
שאלה זו מודפסת בשני נוסחים שקולים: 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 → 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? נמקו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.