תרגול מדעי המחשב

הערך הגדול במחסנית

בינוני C#

המשימה

כתוב פעולה שמקבלת מחסנית של מספרים שלמים ומחזירה את הערך הגדול
ביותר שבה — כשבסוף הפעולה המחסנית חוזרת למצבה המקורי, באותו סדר.

אם המחסנית ריקה — החזר 1-.

דוגמה:
  מחסנית [3,9,2] (3 בראש)  →  9, והמחסנית נשארת [3,9,2]

הנחיות:
• אי אפשר לקרוא איבר במחסנית בלי להוציא אותו. הוצא הכול למחסנית עזר,
  ובדרך עקוב אחרי המקסימום.
• שתי העברות מחזירות את הסדר המקורי; העברה אחת בלבד הופכת אותו.
• pop על מחסנית ריקה זורק שגיאת ריצה — בדוק isEmpty לפני.
• אתחל את המקסימום לאיבר הראשון שהוצאת, לא לאפס.

ממשק מבני הנתונים כבר מצורף למשימה.

```ds:stack
{"title":"המחסנית שבדוגמה — המקסימום 9, והיא חייבת להישאר בדיוק כך","items":["2","9","3"]}
```

קוד הפתיחה

using System;

class Program {

    static int MaxStack(Stack<int> st) {
        // כתוב את הפתרון כאן — המחסנית חייבת לחזור למצבה המקורי
        return -1;
    }

    static void Main() {
        Stack<int> st = new Stack<int>();
        st.Push(2);
        st.Push(9);
        st.Push(3);

        Console.WriteLine(st);            // [3,9,2]
        Console.WriteLine(MaxStack(st));  // 9
        Console.WriteLine(st);            // [3,9,2]  — ללא שינוי

        Stack<int> neg = new Stack<int>();
        neg.Push(-7);
        neg.Push(-3);
        Console.WriteLine(MaxStack(neg));               // -3
        Console.WriteLine(MaxStack(new Stack<int>()));  // -1
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא סכום מחסנית בלי לאבד אותה
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.