נתונות הפעולות foo ו-goo שלפניכם:
נתונות הפעולות foo ו-goo שלפניכם:
public static int foo (BinNode<Integer> tree) {
if (tree.getLeft() == null && tree.getRight() == null)
return 0;
if (tree.getLeft() == null)
return foo (tree.getRight()) + 1;
if (tree.getRight() == null)
return foo (tree.getLeft()) - 1;
return foo (tree.getLeft()) + foo (tree.getRight());
}
public static boolean goo (BinNode<Integer> tree) {
if (tree == null)
return true;
if (foo (tree) != 0)
return false;
return goo (tree.getLeft()) && goo (tree.getRight());
}
עץ 1 (לסעיף א(1)): שורש 5, אין בן שמאלי, בן ימני 9; ל-9 אין בן שמאלי, בן ימני 7; ל-7 בן שמאלי 0 ובן ימני 3 (שניהם עלים).
tree->5
5.right->9
9.right->7
7.left=0 (leaf), 7.right=3 (leaf)
עץ 2 (לסעיפים א(2) ו-ב(1)): שורש 5, בן ימני בלבד 1; ל-1 בן שמאלי 0 ובן ימני 7; ל-0 בן שמאלי בלבד 2; ל-2 בן שמאלי בלבד 4 (עלה); ל-7 בן ימני בלבד 3 (עלה).
tree->5
5.right->1
1.left->0, 1.right->7
0.left->2
2.left->4 (leaf)
7.right->3 (leaf)
בצעו מעקב אחרי הפעולה foo והעץ שלפניכם, וכתבו מה הפעולה מחזירה. יש להציג את המעקב.
foo(tree)
בעבור עץ שיש לו 6 צמתים, מהו המספר הכי גבוה שהפעולה foo יכולה להחזיר? הציגו את העץ.
בעבור עץ שיש לו 6 צמתים, מהו המספר הכי נמוך שהפעולה foo יכולה להחזיר? הציגו את העץ.
כתבו בקצרה מה הפעולה foo מחזירה בעבור עץ כלשהו שאינו ריק.
בצעו מעקב אחרי הפעולה goo והעץ שלפניכם, וכתבו מה הפעולה מחזירה. יש להציג את המעקב. בסעיף זה אין צורך להציג מעקב אחרי הפעולה foo.
goo(tree)
הציגו עץ שיש לו 3 צמתים שבעבורו הפעולה goo תחזיר תוצאה הפוכה מן התוצאה שהתקבלה בתת-סעיף ב(1).
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.