תרגול מדעי המחשב

סכום רמה בעץ

מאתגר C#

המשימה

רמה 0 היא השורש, רמה 1 היא בניו, וכן הלאה.

כתוב פעולה **רקורסיבית** שמקבלת שורש של עץ בינארי ומספר רמה k,
ומחזירה את סכום הערכים של כל הצמתים ברמה k.

עבור העץ שבדוגמה:
  k=0  →  4
  k=1  →  9    (2 + 7)
  k=2  →  13   (1 + 3 + 9)
  k=5  →  0    (אין רמה כזו)

הנחיות:
• הרקורסיה צריכה לדעת באיזו רמה היא נמצאת. אין דרך לדעת זאת מהצומת
  עצמו, ולכן העומק חייב לעבור כפרמטר.
• שני מקרי בסיס: עץ ריק (0), והגענו לרמה המבוקשת (מחזירים את הערך
  ולא ממשיכים לרדת).
• צעד הרקורסיה: יורדים לשני הבנים עם k קטן ב-1, ומחברים.

ממשק מבני הנתונים כבר מצורף למשימה.

```ds:tree
{"title":"העץ — רמה 2 מכילה את 1, 3 ו-9","nodes":["4","2","7","1","3",null,"9"]}
```

```ds:table
{"title":"סכומי הרמות","rows":[["רמה","צמתים","סכום"],["0","4","4"],["1","2, 7","9"],["2","1, 3, 9","13"],["3","—","0"]]}
```

קוד הפתיחה

using System;

class Program {

    static int LevelSum(BinNode<int> root, int k) {
        // כתוב את הפתרון כאן — רקורסיבי
        return 0;
    }

    static void Main() {
        //        4
        //       / \
        //      2   7
        //     / \    \
        //    1   3    9
        BinNode<int> one   = new BinNode<int>(1);
        BinNode<int> three = new BinNode<int>(3);
        BinNode<int> nine  = new BinNode<int>(9);
        BinNode<int> two   = new BinNode<int>(one, 2, three);
        BinNode<int> seven = new BinNode<int>(null, 7, nine);
        BinNode<int> root  = new BinNode<int>(two, 4, seven);

        Console.WriteLine(LevelSum(root, 0));   // 4
        Console.WriteLine(LevelSum(root, 1));   // 9
        Console.WriteLine(LevelSum(root, 2));   // 13
        Console.WriteLine(LevelSum(root, 5));   // 0
        Console.WriteLine(LevelSum(null, 0));   // 0
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא סכום ערכי העץ
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.