אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2022 · קיץ מועד א · שאלה 6כל שאלות המבחן ←
רקורסיהאלגוריתמים רקורסיביים

נתונות שתי הפעולות הרקורסיביות הבאות, הפועלות על מחסנית 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?

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי