שתי פעולות רקורסיביות: secret מקבלת מחסנית לא ריקה, ו-mystery מקבלת מחסנית ומספר שלם וחיובי c. נתונות גם המחסניות s1, s2.
שתי פעולות רקורסיביות: 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?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.