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

שתי פעולות רקורסיביות: secret מקבלת מחסנית לא ריקה, ו-mystery מקבלת מחסנית ומספר שלם וחיובי c. נתונות גם המחסניות s1, s2.

public static int Secret (Stack<int> s)
{
    int x=s.Pop();
    if(s.IsEmpty())
        return x;
    int y = Secret(s);
    s.Push(x);
    return y;
}

public static bool Mystery (Stack<int> s, int c)
{
    if (c==0 || s.IsEmpty())
        return true;
    int y=Secret(s);
    if (s.IsEmpty())
        return false;
    int x=s.Pop();
    if (x==y)
        return Mystery(s, c-1);
    return false;
}

המחסניות s1 (לסעיף א') ו-s2 (לסעיף ג'), מהראש (top) לתחתית — פוענחו מתמונת עמוד 11 (java) / עמוד 23 (csharp).

s1 (top..bottom): 2, 3, 6, 1
s2 (top..bottom): 1, 2, 7, 4, 8, 2, 1
סעיף א

עקבו אחר זימון הפעולה secret עבור המחסנית s1. מהו הערך שיוחזר מהפעולה? יש להראות בכל שלב את הערכים של x,y ואת המחסנית s1.

סעיף ב

מהי מטרת הפעולה secret?

סעיף ג

עקבו אחר זימון הפעולה mystery(s2, 2) ורשמו מהו הערך שיוחזר מהפעולה. יש להראות בכל שלב את הערכים של c,x,y ואת המחסנית s. אין צורך לעקוב אחרי secret.

סעיף ד

מהי מטרת הפעולה mystery?

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

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

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

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