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