המשימה
כתוב פעולה שמקבלת מחסנית של מספרים שלמים וערך 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 ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.