שים לב! לשאלה זו שני נוסחים: בשפת Java ובשפת C#. נתונה המחסנית st (מלמעלה למטה: 6, 3, 7, 4).
1public static void stackSod1 (Stack<Integer> st, int element)
2{
3 if(st.isEmpty())
4 st.push(element);
5 else
6 {
7 int val = st.pop();
8 stackSod1(st, element);
9 st.push(val);
10 }
11}
12
13public static void stackSod2 (Stack<Integer> st)
14{
15 if(!st.isEmpty())
16 {
17 int val = st.pop();
18 stackSod2(st);
19 stackSod1(st, val);
20 st.push(val);
21 }
22}סרטטו את המחסנית כפי שהיא תיראה לאחר זימון הפעולה stackSod1(st, 9) / StackSod1(st, 9). יש להראות מעקב.
מהי מטרת הפעולה stackSod1 / StackSod1?
מהי סיבוכיות זמן הריצה של הפעולה stackSod1 / StackSod1?
סרטטו את המחסנית כפי שהיא תיראה לאחר זימון הפעולה stackSod2(st) / StackSod2(st). יש להראות מעקב. (אין צורך לעקוב אחרי stackSod1).
מהי מטרת הפעולה stackSod2 / StackSod2?
מהי סיבוכיות זמן הריצה של הפעולה stackSod2 / StackSod2?
שים לב! לשאלה זו שני נוסחים: בשפת Java ובשפת C#. נתונה המחסנית st (מלמעלה למטה: 6, 3, 7, 4).
1public static void stackSod1 (Stack<Integer> st, int element)
2{
3 if(st.isEmpty())
4 st.push(element);
5 else
6 {
7 int val = st.pop();
8 stackSod1(st, element);
9 st.push(val);
10 }
11}
12
13public static void stackSod2 (Stack<Integer> st)
14{
15 if(!st.isEmpty())
16 {
17 int val = st.pop();
18 stackSod2(st);
19 stackSod1(st, val);
20 st.push(val);
21 }
22}סרטטו את המחסנית כפי שהיא תיראה לאחר זימון הפעולה stackSod1(st, 9) / StackSod1(st, 9). יש להראות מעקב.
מהי מטרת הפעולה stackSod1 / StackSod1?
מהי סיבוכיות זמן הריצה של הפעולה stackSod1 / StackSod1?
סרטטו את המחסנית כפי שהיא תיראה לאחר זימון הפעולה stackSod2(st) / StackSod2(st). יש להראות מעקב. (אין צורך לעקוב אחרי stackSod1).
מהי מטרת הפעולה stackSod2 / StackSod2?
מהי סיבוכיות זמן הריצה של הפעולה stackSod2 / StackSod2?