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

האם הערך קיים בעץ

בינוני C#

המשימה

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

העץ **אינו** עץ חיפוש — אין הנחה על סדר הערכים, ולכן יש לחפש בשני
הצדדים.

הנחיות:
• מקרה הבסיס: עץ ריק — הערך בוודאי אינו בו.
• צעד הרקורסיה: הערך נמצא אם הוא בשורש, **או** בתת-העץ השמאלי,
  **או** בתת-העץ הימני.
• שים לב להחזיר את תוצאת הקריאות הרקורסיביות. קריאה שתוצאתה נזרקת
  היא הבאג הנפוץ ביותר ברקורסיה בוליאנית.

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

```ds:tree
{"title":"העץ — 3 קיים, 5 אינו קיים","nodes":["4","2","7","1","3",null,"9"]}
```

קוד הפתיחה

using System;

class Program {

    static bool Contains(BinNode<int> root, int x) {
        // כתוב את הפתרון כאן — רקורסיבי
        return false;
    }

    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(Contains(root, 4));   // True
        Console.WriteLine(Contains(root, 3));   // True
        Console.WriteLine(Contains(root, 9));   // True
        Console.WriteLine(Contains(root, 5));   // False
        Console.WriteLine(Contains(null, 1));   // False
    }
}

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

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