המשימה
כתוב פעולה **רקורסיבית** שמקבלת שורש של עץ בינארי וערך x, ומחזירה true אם x מופיע באחד מצמתי העץ. העץ **אינו** עץ חיפוש — אין הנחה על סדר הערכים, ולכן יש לחפש בשני הצדדים. הנחיות: • מקרה הבסיס: עץ ריק — הערך בוודאי אינו בו. • צעד הרקורסיה: הערך נמצא אם הוא בשורש, **או** בתת-העץ השמאלי, **או** בתת-העץ הימני. • שים לב להחזיר את תוצאת הקריאות הרקורסיביות. קריאה שתוצאתה נזרקת היא הבאג הנפוץ ביותר ברקורסיה בוליאנית. ממשק מבני הנתונים כבר מצורף למשימה. [עץ בינארי]
קוד הפתיחה
public class Main {
public static boolean contains(BinNode<Integer> root, int x) {
// כתוב את הפתרון כאן — רקורסיבי
return false;
}
public static void main(String[] args) {
// 4
// / \
// 2 7
// / \ \
// 1 3 9
BinNode<Integer> one = new BinNode<Integer>(1);
BinNode<Integer> three = new BinNode<Integer>(3);
BinNode<Integer> nine = new BinNode<Integer>(9);
BinNode<Integer> two = new BinNode<Integer>(one, 2, three);
BinNode<Integer> seven = new BinNode<Integer>(null, 7, nine);
BinNode<Integer> root = new BinNode<Integer>(two, 4, seven);
System.out.println(contains(root, 4)); // true
System.out.println(contains(root, 3)); // true
System.out.println(contains(root, 9)); // true
System.out.println(contains(root, 5)); // false
System.out.println(contains(null, 1)); // false
}
}
כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון —
כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות
בדיקה חיצוני.