שתי פעולות רקורסיביות: secret מקבלת מחסנית לא ריקה, ו-mystery מקבלת מחסנית ומספר שלם וחיובי c. נתונות גם המחסניות s1, s2.
שתי פעולות רקורסיביות: secret מקבלת מחסנית לא ריקה, ו-mystery מקבלת מחסנית ומספר שלם וחיובי c. נתונות גם המחסניות s1, s2.
public static int secret (Stack<Integer> s)
{
int x=s.pop();
if(s.isEmpty())
return x;
int y = secret(s);
s.push(x);
return y;
}
public static boolean mystery (Stack<Integer> 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?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.