המשימה
ממשו את הפעולה getTopsSum. הפעולה מקבלת **שרשרת חוליות שבכל חוליה שלה יושב תור** של מספרים עשרוניים, ומחזירה את סכום האיברים שבראשי התורים. כלומר: מכל תור לוקחים רק את האיבר הראשון, ומסכמים. דוגמה: חוליה 1: תור [1.5, 9.0] → לוקחים 1.5 חוליה 2: תור [] → ריק, מדלגים חוליה 3: תור [2.5, 0.5] → לוקחים 2.5 התוצאה: 4.0 הנחיות: • **חובה שאחת החוליות תכיל תור ריק** — זה המקרה שמפיל פתרונות. head על תור ריק זורק שגיאת ריצה. • התורים חייבים להישאר במצבם המקורי. יש פעולה שמאפשרת לראות את הראש בלי להוציא אותו — מצאו אותה. ממשק מבני הנתונים כבר מצורף למשימה. [רשימה מקושרת] [טבלה]
קוד הפתיחה
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 ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.