המשימה
כתוב פעולה שמקבלת מחסנית של מספרים שלמים ומחזירה **מחסנית חדשה**
זהה לה — אותם ערכים, באותו סדר.
בסוף הפעולה המחסנית המקורית חייבת להיות במצבה ההתחלתי.
דוגמה:
מקורית [5,1,8] (5 בראש) → מוחזרת [5,1,8], והמקורית נשארת [5,1,8]
הנחיות:
• כל העברה בין שתי מחסניות הופכת את הסדר. שתי העברות מחזירות אותו.
ספור כמה העברות אתה צריך כדי ששתי המחסניות יצאו בסדר הנכון.
• השתמש במחסנית עזר אחת. אין צורך במערך ואין צורך ברשימה.
• מחסנית ריקה מחזירה מחסנית ריקה.
ממשק מבני הנתונים כבר מצורף למשימה.
```ds:stack
{"title":"המקורית — והעותק חייב לצאת זהה לה","items":["8","1","5"]}
```
קוד הפתיחה
using System;
class Program {
static Stack<int> CopyStack(Stack<int> st) {
// כתוב את הפתרון כאן — המקורית חייבת לחזור למצבה
return new Stack<int>();
}
static void Main() {
Stack<int> st = new Stack<int>();
st.Push(8);
st.Push(1);
st.Push(5);
Stack<int> c = CopyStack(st);
Console.WriteLine(st); // [5,1,8] — ללא שינוי
Console.WriteLine(c); // [5,1,8]
c.Push(99);
Console.WriteLine(st); // [5,1,8] — העותק נפרד
Console.WriteLine(CopyStack(new Stack<int>())); // []
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.