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

public static void what(Stack<Integer> st, boolean flag)
{
    int x, y;
    boolean found;
    Stack<Integer> temp1 = new Stack<Integer>();
    Stack<Integer> temp2 = new Stack<Integer>();
    while(!st.isEmpty())
    {
        x = st.pop();
        found = false;
        while(!st.isEmpty())
        {
            y = st.pop();
            if((x > y) == flag)
                found = true;
            temp1.push(y);
        }
        while(!temp1.isEmpty())
            st.push(temp1.pop());
        if(!found)
            temp2.push(x);
    }
    while(!temp2.isEmpty())
        st.push(temp2.pop());
}
(א)נתונה המחסנית st (8 נמצא בראש המחסנית, מהראש למטה):
`8, 9, 2, 9, 3, 10, 7, 10`

מה יהיה התוכן של המחסנית st אחרי זימון הפעולה `what(st, true)` עבור המחסנית st?
יש להראות מעקב אחרי ביצוע הפעולה.
(ב)תנו דוגמה למחסנית st המכילה לפחות חמישה ערכים שונים כך שתוכן המחסנית לא ישתנה אחרי זימון הפעולה `what(st, true)`.
אם לא ניתן ליצור מחסנית כזו, יש להסביר מדוע.
(ג)תנו דוגמה למחסנית st המכילה לפחות חמישה ערכים שונים כך שאחרי זימון הפעולה `what(st, false)` במחסנית יישאר רק ערך אחד.
אם לא ניתן ליצור מחסנית כזו, יש להסביר מדוע.
(ד)מה מבצעת הפעולה `what(Stack<Integer> st, boolean flag)` באופן כללי?

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

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

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

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

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

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

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