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

public static void what(Stack<Integer> s)
{
    Stack<Integer> temp1 = new Stack<Integer>();
    Stack<Integer> temp2 = new Stack<Integer>();
    while(!s.isEmpty())
    {
        int x = s.pop();
        boolean 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?

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

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

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

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←