לפניכם עץ בינארי ששורשו root, המכיל מספרים שלמים. יש לבצע מעקב אחרי הזימונים something(root)/Something(root) (ולהסביר מה מבצעת הפעולה בכלל) ואחרי sod(root)/Sod(root) עם העץ הנתון.
לפניכם עץ בינארי ששורשו root, המכיל מספרים שלמים. יש לבצע מעקב אחרי הזימונים something(root)/Something(root) (ולהסביר מה מבצעת הפעולה בכלל) ואחרי sod(root)/Sod(root) עם העץ הנתון.
public static int something (BinNode<Integer> 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<Integer> 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<Integer> 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)); }
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.