נתונות שתי הפעולות הרקורסיביות הבאות, הפועלות על מחסנית st מטיפוס שלם. סעיף א עוסק ב-stackSod1, וסעיף ב עוסק ב-stackSod2 (המשתמשת ב-stackSod1 מסעיף א).
נתונות שתי הפעולות הרקורסיביות הבאות, הפועלות על מחסנית st מטיפוס שלם. סעיף א עוסק ב-stackSod1, וסעיף ב עוסק ב-stackSod2 (המשתמשת ב-stackSod1 מסעיף א).
public static void stackSod1(Stack<Integer> st, int element)
{
if(st.isEmpty())
st.push(element);
else
{
int val = st.pop();
stackSod1(st, element);
st.push(val);
}
}
public static void stackSod2 (Stack<Integer> st)
{
if(!st.isEmpty())
{
int val = st.pop();
stackSod2(st);
stackSod1(st, val);
st.push(val);
}
}
המחסנית הנתונה בשני הסעיפים (מהראש לתחתית: 6,3,7,4)
st (top->bottom): 6,3,7,4
סעיף א1
סרטטו את המחסנית כפי שתיראה תיכף לאחר זימון הפעולה stackSod1(st, 9). יש להראות מעקב.
סעיף א2
מהי מטרת הפעולה stackSod1?
סעיף א3
מהי סיבוכיות זמן הריצה של הפעולה stackSod1?
סעיף ב1
סרטטו את המחסנית כפי שתיראה תיכף לאחר זימון הפעולה stackSod2(st). יש להראות מעקב מפורט (בסעיף זה אין צורך לבצע מעקב אחר stackSod1 בתוך הפעולה).
סעיף ב2
מהי מטרת הפעולה stackSod2?
סעיף ב3
מהי סיבוכיות זמן הריצה של הפעולה stackSod2?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.