שאלה 1מבני נתונים2025 קיץ מועד ארשימה מקושרתסה״כ 25 נק׳
מחיקת משחקים משרשרת חוליות לפי מחיר
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
נתונה המחלקה Game – משחק מחשב, ולה שתי תכונות:
name – שם המשחק, מטיפוס מחרוזת.
price – מחיר המשחק – מספר הגדול מ־0, מטיפוס שלם.
הניחו שיש פעולות get ו־set לתכונות המחלקה.
נתונה המחלקה Store – חנות משחקי מחשב, ולה תכונה אחת:
lst – הפניה לשרשרת חוליות שאינה ריקה, מטיפוס Game. כל חוליה בשרשרת מכילה משחק הנמכר בחנות.
הערה
המשחקים אינם מסודרים בשרשרת בסדר מסוים, וכל משחק מופיע פעם אחת בלבד.
משימות
אמשימה א
מימושניקוד לא ידוע
ממשו את הפעולה של ממשק המחלקה Store שלפניכם:
java
1publicint remove (int n,int pr)
הפעולה תמחק מן השרשרת n משחקים שמחיר כל אחד מהם pr. אם יש יותר מ־n משחקים שמחירם pr, יימחקו רק n המשחקים הראשונים מביניהם. אם יש פחות מ־n משחקים שמחירם pr, רק הם יימחקו.
הפעולה תחזיר את כמות המשחקים שנמחקו (כלומר מקסימום n, אך ייתכן שפחות).
הניחו ש־n ו־pr גדולים מ־0.
⚠ הערה — אילוץ מחייב
שאר המשחקים בשרשרת יישארו באותו הסדר. אם אין בשרשרת שום משחק במחיר pr, השרשרת תישאר ללא שום שינוי והפעולה תחזיר 0.
הסבר: חמשת המשחקים הזולים יותר (30+30+30+27+25) נמחקו מן השרשרת וסכום מחירם הכולל הוא 142. בשרשרת נשאר משחק אחד שמחירו 99 ואחד שמחירו 30 (אפשר להשאיר בשרשרת משחק אחר שעולה 30, אין חשיבות איזה מהם יישאר).
שפת התכנות שלי
שאלה 1מבני נתונים2025 קיץ מועד ארשימה מקושרתסה״כ 25 נק׳
מחיקת משחקים משרשרת חוליות לפי מחיר
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
נתונה המחלקה Game – משחק מחשב, ולה שתי תכונות:
name – שם המשחק, מטיפוס מחרוזת.
price – מחיר המשחק – מספר הגדול מ־0, מטיפוס שלם.
הניחו שיש פעולות get ו־set לתכונות המחלקה.
נתונה המחלקה Store – חנות משחקי מחשב, ולה תכונה אחת:
lst – הפניה לשרשרת חוליות שאינה ריקה, מטיפוס Game. כל חוליה בשרשרת מכילה משחק הנמכר בחנות.
הערה
המשחקים אינם מסודרים בשרשרת בסדר מסוים, וכל משחק מופיע פעם אחת בלבד.
משימות
אמשימה א
מימושניקוד לא ידוע
ממשו את הפעולה של ממשק המחלקה Store שלפניכם:
java
1publicint remove (int n,int pr)
הפעולה תמחק מן השרשרת n משחקים שמחיר כל אחד מהם pr. אם יש יותר מ־n משחקים שמחירם pr, יימחקו רק n המשחקים הראשונים מביניהם. אם יש פחות מ־n משחקים שמחירם pr, רק הם יימחקו.
הפעולה תחזיר את כמות המשחקים שנמחקו (כלומר מקסימום n, אך ייתכן שפחות).
הניחו ש־n ו־pr גדולים מ־0.
⚠ הערה — אילוץ מחייב
שאר המשחקים בשרשרת יישארו באותו הסדר. אם אין בשרשרת שום משחק במחיר pr, השרשרת תישאר ללא שום שינוי והפעולה תחזיר 0.
הסבר: חמשת המשחקים הזולים יותר (30+30+30+27+25) נמחקו מן השרשרת וסכום מחירם הכולל הוא 142. בשרשרת נשאר משחק אחד שמחירו 99 ואחד שמחירו 30 (אפשר להשאיר בשרשרת משחק אחר שעולה 30, אין חשיבות איזה מהם יישאר).