המשימה
ממשו את הפעולה getTopsSum. הפעולה מקבלת **שרשרת חוליות שבכל חוליה שלה
יושב תור** של מספרים עשרוניים, ומחזירה את סכום האיברים שבראשי התורים.
כלומר: מכל תור לוקחים רק את האיבר הראשון, ומסכמים.
דוגמה:
חוליה 1: תור [1.5, 9.0] → לוקחים 1.5
חוליה 2: תור [] → ריק, מדלגים
חוליה 3: תור [2.5, 0.5] → לוקחים 2.5
התוצאה: 4.0
הנחיות:
• **חובה שאחת החוליות תכיל תור ריק** — זה המקרה שמפיל פתרונות.
head על תור ריק זורק שגיאת ריצה.
• התורים חייבים להישאר במצבם המקורי. יש פעולה שמאפשרת לראות את
הראש בלי להוציא אותו — מצאו אותה.
ממשק מבני הנתונים כבר מצורף למשימה.
```ds:list
{"title":"השרשרת — בכל חוליה תור","items":["[1.5, 9.0]","[ ריק ]","[2.5, 0.5]"]}
```
```ds:table
{"title":"מה נלקח מכל חוליה","rows":[["חוליה","התור","ראש התור","נכנס לסכום"],["1","1.5 · 9.0","1.5","1.5"],["2","ריק","אין","0"],["3","2.5 · 0.5","2.5","2.5"],["סה\"כ","","","4.0"]]}
```
קוד הפתיחה
public class Main {
public static double getTopsSum(Node<Queue<Double>> lst) {
// כתוב את הפתרון כאן
return 0;
}
// ── עזר, לא חלק מהמשימה ──────────────────────────────────────────
public static Queue<Double> q(double... values) {
Queue<Double> q = new Queue<Double>();
for (double v : values) q.insert(v);
return q;
}
public static void main(String[] args) {
Node<Queue<Double>> lst =
new Node<Queue<Double>>(q(1.5, 9.0),
new Node<Queue<Double>>(q(), // תור ריק — המקרה החשוב
new Node<Queue<Double>>(q(2.5, 0.5), null)));
System.out.println(getTopsSum(lst)); // 4.0
System.out.println(lst.getInfo()); // [1.5,9.0] — התור לא נפגע
System.out.println(getTopsSum(null)); // 0.0
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.