טוען...
טוען...
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
נתונה המחלקה TwoStack, ולה שתי תכונות:
numbers — מחסנית מטיפוס שלםsums — מחסנית מטיפוס שלםהיחס בין המחסנית sums למחסנית numbers הוא כמפורט להלן:
sums שווה למספר בסוף המחסנית numbers.sums שווה לסכום שני המספרים האחרונים במחסנית numbers.sums שווה לסכום שלושת המספרים האחרונים במחסנית numbers.sums, השווה לסכום כל המספרים במחסנית numbers.✎ דוגמה
numbers — ראש המחסנית: -9, 3, 4, -1, 2 :סוף המחסנית sums — ראש המחסנית: -1, 8, 5, 1, 2 :סוף המחסנית ליד כל תא, הסכום שהפיק אותו: 2+(-1)+4+3+(-9), 2+(-1)+4+3, 2+(-1)+4, 2+(-1), 2
ממשו את הפעולה הפנימית שלהלן:
java1public Stack<Integer> getNums (int x)
הפעולה מקבלת מספר x השווה לאחד המספרים במחסנית sums, ומחזירה מחסנית חדשה מטיפוס שלם, שבה מופיעים המספרים מן המחסנית numbers שסכומם שווה למספר x.
הניחו שהמספר x קיים במחסנית sums ומופיע בה רק פעם אחת.
✎ דוגמה
בעבור המחסניות שבדוגמה לעיל ו־
x = 5(5הוא המספר השלישי מלמטה במחסניתsums), הפעולה תחזיר את המחסנית שלהלן:ראש המחסנית: 4, -1, 2
הערות
- אפשר לשנות את המחסניות של המחלקה.
- אין חשיבות לסדר המספרים במחסנית המוחזרת.
- ההגדרה למחסנית מטיפוס שלם
Stack<Integer>שקולה להגדרהStackInt. אפשר להשתמש בכל אחת מהן, לבחירתכם.
ממשו את הפעולה הפנימית שלהלן:
java1public void eraseNum (int x)
הפעולה מוחקת את המספר x מן המחסנית numbers ומתקנת את המחסנית sums בהתאם.
הניחו שהמספר x קיים במחסנית numbers והוא מופיע בה רק פעם אחת.
הערה
יש לשמור על סדר המספרים שנשארו במחסנית
numbers.
✎ דוגמה
בעבור המחסניות שלפניכם ו־
x = 3:numbers — ראש המחסנית: 6, -3, 3, 2 sums — ראש המחסנית: 8, 2, 5, 2 לאחר הרצת הפעולה ייראו המחסניות כך:
numbers — ראש המחסנית: 6, -3, 2 sums — ראש המחסנית: 5, -1, 2
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
נתונה המחלקה TwoStack, ולה שתי תכונות:
numbers — מחסנית מטיפוס שלםsums — מחסנית מטיפוס שלםהיחס בין המחסנית sums למחסנית numbers הוא כמפורט להלן:
sums שווה למספר בסוף המחסנית numbers.sums שווה לסכום שני המספרים האחרונים במחסנית numbers.sums שווה לסכום שלושת המספרים האחרונים במחסנית numbers.sums, השווה לסכום כל המספרים במחסנית numbers.✎ דוגמה
numbers — ראש המחסנית: -9, 3, 4, -1, 2 :סוף המחסנית sums — ראש המחסנית: -1, 8, 5, 1, 2 :סוף המחסנית ליד כל תא, הסכום שהפיק אותו: 2+(-1)+4+3+(-9), 2+(-1)+4+3, 2+(-1)+4, 2+(-1), 2
ממשו את הפעולה הפנימית שלהלן:
java1public Stack<Integer> getNums (int x)
הפעולה מקבלת מספר x השווה לאחד המספרים במחסנית sums, ומחזירה מחסנית חדשה מטיפוס שלם, שבה מופיעים המספרים מן המחסנית numbers שסכומם שווה למספר x.
הניחו שהמספר x קיים במחסנית sums ומופיע בה רק פעם אחת.
✎ דוגמה
בעבור המחסניות שבדוגמה לעיל ו־
x = 5(5הוא המספר השלישי מלמטה במחסניתsums), הפעולה תחזיר את המחסנית שלהלן:ראש המחסנית: 4, -1, 2
הערות
- אפשר לשנות את המחסניות של המחלקה.
- אין חשיבות לסדר המספרים במחסנית המוחזרת.
- ההגדרה למחסנית מטיפוס שלם
Stack<Integer>שקולה להגדרהStackInt. אפשר להשתמש בכל אחת מהן, לבחירתכם.
ממשו את הפעולה הפנימית שלהלן:
java1public void eraseNum (int x)
הפעולה מוחקת את המספר x מן המחסנית numbers ומתקנת את המחסנית sums בהתאם.
הניחו שהמספר x קיים במחסנית numbers והוא מופיע בה רק פעם אחת.
הערה
יש לשמור על סדר המספרים שנשארו במחסנית
numbers.
✎ דוגמה
בעבור המחסניות שלפניכם ו־
x = 3:numbers — ראש המחסנית: 6, -3, 3, 2 sums — ראש המחסנית: 8, 2, 5, 2 לאחר הרצת הפעולה ייראו המחסניות כך:
numbers — ראש המחסנית: 6, -3, 2 sums — ראש המחסנית: 5, -1, 2