המשימה
ממשו את הפעולה 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"]]}
```
קוד הפתיחה
using System;
class Program {
static double GetTopsSum(Node<Queue<double>> lst) {
// כתוב את הפתרון כאן
return 0;
}
// ── עזר, לא חלק מהמשימה ──────────────────────────────────────────
static Queue<double> Q(params double[] values) {
Queue<double> q = new Queue<double>();
foreach (double v in values) q.Insert(v);
return q;
}
static void Main() {
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)));
Console.WriteLine(GetTopsSum(lst)); // 4
Console.WriteLine(lst.GetInfo()); // [1.5,9] — התור לא נפגע
Console.WriteLine(GetTopsSum(null)); // 0
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.