נתונות שתי פעולות רקורסיביות הבאות:
public static void One(Stack<int> s, int x){
if(s.IsEmpty())
s.Push(x);
else
{
int temp=s.Pop();
One(s,x);
s.Push(temp);
}
}
public static void Two(Stack<int> s){
if(!s.IsEmpty())
{
int x = s.Pop();
Two(s);
One(s,x);
}
}
המחסנית s1 (ראש המחסנית למעלה):
| s1 |
|---|
| 3 |
| -1 |
| 7 |
| 2 |
נתונה הפעולה הרקורסיבית Three הבאה:
public static bool Three(Stack<int> s){
if(s.IsEmpty())
return true;
int x = s.Pop();
Two(s);
if(s.IsEmpty())
return true;
int y = s.Pop();
if(x % y != 0)
return false;
Two(s);
return Three(s);
}
המחסנית s2 (ראש המחסנית למעלה):
| s2 |
|---|
| 3 |
| 6 |
| 14 |
| 2 |
| 6 |
| 3 |
| 1 |
סעיף א
מה יהיה התוכן של המחסנית s1 אחרי זימון הפעולה One(s1,10)? יש להראות מעקב אחרי ביצוע הפעולה One.
סעיף ב
מה מבצעת הפעולה One(s,x) עבור מחסנית s של מספרים שלמים ומספר שלם x?
סעיף ג
מה יהיה התוכן של המחסנית s1 אחרי זימון הפעולה Two(s1)? יש להראות מעקב אחרי ביצוע הפעולה Two. אין צורך במעקב אחרי הפעולה One.
סעיף ד
מה מבצעת הפעולה Two(s) עבור מחסנית s של מספרים שלמים?
סעיף ה
מהי תוצאת זימון הפעולה Three(s2)? יש להראות מעקב אחרי ביצוע הפעולה Three. אין צורך במעקב אחרי הפעולה Two.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.