לפניכם עץ בינארי ששורשו root, המכיל מספרים שלמים. יש לבצע מעקב אחרי הזימונים something(root)/Something(root) (ולהסביר מה מבצעת הפעולה בכלל) ואחרי sod(root)/Sod(root) עם העץ הנתון.
לפניכם עץ בינארי ששורשו root, המכיל מספרים שלמים. יש לבצע מעקב אחרי הזימונים something(root)/Something(root) (ולהסביר מה מבצעת הפעולה בכלל) ואחרי sod(root)/Sod(root) עם העץ הנתון.
public static int Something (BinNode<int> root) {
if (root == null)
return 0;
if (root.GetLeft() == null && root.GetRight() == null)
return root.GetValue();
int ans1 = Something(root.GetLeft());
int ans2 = Something(root.GetRight());
if (ans1 > ans2)
return ans1 + root.GetValue();
return ans2 + root.GetValue();
}
העץ הבינארי הנתון (root ומטה)
root=-10; left(-10)=7 [left(7)=6, right(7)=-3 [left(-3)=-5, right(-3)=20]]; right(-10)=10 [right(10)=12]
נתונה הפעולה something בשפת Java ו-Something בשפת C# (קוד מלא נתון). (1) מהו הערך שתחזיר הפעולה עבור הזימון something(root)/Something(root) עם העץ הנתון? יש להציג מעקב על ביצוע הפעולה. (2) הסבירו מה מבצעת הפעולה עבור כל עץ של מספרים שלמים.
public static int Something (BinNode<int> root) { if (root == null) return 0; if (root.GetLeft() == null && root.GetRight() == null) return root.GetValue(); int ans1 = Something(root.GetLeft()); int ans2 = Something(root.GetRight()); if (ans1 > ans2) return ans1 + root.GetValue(); return ans2 + root.GetValue(); }
נתונה הפעולה sod בשפת Java ו-Sod בשפת C# (קוד מלא נתון), המקבלת עץ בינארי של מספרים שלמים, בתחום הערכים -100 עד 100. מהו הערך שתחזיר הפעולה עבור הזימון sod(root)/Sod(root) עם העץ הנתון לעיל? יש להציג מעקב על ביצוע הפעולה. אין צורך לבצע מעקב אחרי הפעולה something/Something אלא רק לציין את הערך שחוזר מהפעולה.
public static int Sod (BinNode<int> root) { if (root == null) return -101; int x = Something (root); int left = Sod (root.GetLeft()); int right = Sod (root.GetRight()); return Math.Max (x, Math.Max (left, right)); }
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.