נתונות שתי פעולות רקורסיביות הבאות:
נתונות שתי פעולות רקורסיביות הבאות:
public static void one(Stack<Integer> 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<Integer> s){
if(!s.isEmpty())
{
int x = s.pop();
two(s);
one(s,x);
}
}
נתונה הפעולה הרקורסיבית three הבאה:
public static boolean three(Stack<Integer> 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);
}
סעיף א
מה יהיה התוכן של המחסנית s1 אחרי זימון הפעולה one(s1,10)? יש להראות מעקב אחרי ביצוע הפעולה one.
המחסנית s1 (ראש המחסנית למעלה):
| s1 |
|---|
| 3 |
| -1 |
| 7 |
| 2 |
סעיף ב
מה מבצעת הפעולה one(s,x) עבור מחסנית s של מספרים שלמים ומספר שלם x?
סעיף ג
מה יהיה התוכן של המחסנית s1 אחרי זימון הפעולה two(s1)? יש להראות מעקב אחרי ביצוע הפעולה two. אין צורך במעקב אחרי הפעולה one.
סעיף ד
מה מבצעת הפעולה two(s) עבור מחסנית s של מספרים שלמים?
סעיף ה
מה תהיה תוצאת זימון הפעולה three(s2)? יש להראות מעקב אחרי ביצוע הפעולה three. אין צורך במעקב אחרי הפעולה two.
המחסנית s2 (ראש המחסנית למעלה):
| s2 |
|---|
| 3 |
| 6 |
| 14 |
| 2 |
| 6 |
| 3 |
| 1 |
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.