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

הסרת ערך ממחסנית

מאתגר C#

המשימה

כתוב פעולה שמקבלת מחסנית של מספרים שלמים וערך x, ומסירה מהמחסנית
את **כל** המופעים של x — כשכל שאר האיברים נשארים בסדר המקורי שלהם.

הפעולה משנה את המחסנית שהתקבלה ואינה מחזירה ערך.

דוגמה:
  [4,7,4,1] (4 בראש), x=4  →  [7,1] (7 בראש)

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

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

```ds:stack
{"title":"לפני — x = 4","items":["1","4","7","4"]}
```

```ds:stack
{"title":"אחרי","items":["1","7"]}
```

קוד הפתיחה

using System;

class Program {

    static void RemoveValue(Stack<int> st, int x) {
        // כתוב את הפתרון כאן — הסדר של מה שנשאר חייב להישמר
    }

    static void Main() {
        Stack<int> st = new Stack<int>();
        st.Push(1);
        st.Push(4);
        st.Push(7);
        st.Push(4);

        Console.WriteLine(st);   // [4,7,4,1]
        RemoveValue(st, 4);
        Console.WriteLine(st);   // [7,1]

        RemoveValue(st, 100);
        Console.WriteLine(st);   // [7,1]  — ללא שינוי

        RemoveValue(st, 7);
        RemoveValue(st, 1);
        Console.WriteLine(st);   // []
    }
}

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

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