אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2024 · אביב מועד א · שאלה 5כל שאלות המבחן ←
מבנים לינארייםמחסניות

נתונה הפעולה הבאה:

public static void What(Stack<int> s)
{
    Stack<int> temp1 = new Stack<int>();
    Stack<int> temp2 = new Stack<int>();
    while(!s.IsEmpty())
    {
        int x = s.Pop();
        bool found = false;
        while(!s.IsEmpty())
        {
            int y =s.Pop();
            if(x < y)
                found = true;
            temp1.Push(y);
        }
        while(!temp1.IsEmpty())
            s.Push(temp1.Pop());
        if(!found)
            temp2.Push(x);
    }
    while(!temp2.IsEmpty())
        s.Push(temp2.Pop());
}

⚠️ בסמוך לקוד (בעמודה ימנית) מופיע תרשים מחסנית-דוגמה שערכיו נבלעו בשכבת הטקסט ליד השורות push/Push. הערכים שחולצו בסדר (ככל הנראה מלמעלה למטה של המחסנית): 4, 6, 3, 1, 4, 1, 4, 1 — יש לאמת מול ה-PDF (עמ' 4 Java / עמ' 14 C#) לפני שימוש.

סעיף א

נתונה מחסנית s (ראו התרשים ⚠️ מעל). מה יהיה התוכן של המחסנית s אחרי זימון הפעולה What(s) עבור המחסנית s? יש להראות מעקב אחרי ביצוע הפעולה What.

סעיף ב

תנו דוגמה למחסנית s המכילה לפחות חמישה ערכים כך שתוכן המחסנית לא ישתנה אחרי זימון הפעולה What(s).

סעיף ג

מה מבצעת הפעולה What(s) עבור מחסנית של מספרים שלמים s?

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

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

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

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