המשימה
כתוב פעולה **רקורסיבית** שמקבלת שורש של עץ בינארי וערך 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 ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.