"עץ מספרים" הוא עץ בינארי לא ריק מטיפוס BinNode<Integer> שהערכים שלו הם מספרים שלמים וגדולים מ-0. על עץ מספרים מוגדרת פעולת "מסלול-עולה": המחזירה true אם יש בעץ מסלול המתחיל בשורש ומסתיים בעלה, ועל-פי ערכי הצמתים ממורש בסדר עולה ממש בהשוואה בין כל שני צמתים סמוכים בו; אם אין מסלול כזה — מחזירה false. בדוגמה: בעבור עץ המספרים tr1 הפעולה "מסלול-עולה" מחזירה true (המסלול מוצף בקו שבור); בעבור עץ המספרים tr2 הפעולה "מסלול-עולה" מחזירה false.
"עץ מספרים" הוא עץ בינארי לא ריק מטיפוס BinNode<Integer> שהערכים שלו הם מספרים שלמים וגדולים מ-0. על עץ מספרים מוגדרת פעולת "מסלול-עולה": המחזירה true אם יש בעץ מסלול המתחיל בשורש ומסתיים בעלה, ועל-פי ערכי הצמתים ממורש בסדר עולה ממש בהשוואה בין כל שני צמתים סמוכים בו; אם אין מסלול כזה — מחזירה false. בדוגמה: בעבור עץ המספרים tr1 הפעולה "מסלול-עולה" מחזירה true (המסלול מוצף בקו שבור); בעבור עץ המספרים tr2 הפעולה "מסלול-עולה" מחזירה false.
public class BinNode<T> {
private T value;
private BinNode<T> left; // בעץ מספרים: הבן השמאלי
private BinNode<T> right; // בעץ מספרים: הבן הימני
public BinNode(T value) { this.value = value; this.left = null; this.right = null; }
public T GetValue() { return value; }
public void SetValue(T value) { this.value = value; }
public BinNode<T> GetLeft() { return left; }
public void SetLeft(BinNode<T> left) { this.left = left; }
public BinNode<T> GetRight() { return right; }
public void SetRight(BinNode<T> right) { this.right = right; }
}
// כאן BinNode<T> משמש לייצוג עץ בינארי: GetLeft/GetRight הם הבנים השמאלי/ימני.
tr1 (upPath=true, המסלול 1→2→17→19 מסומן) ו-tr2 (upPath=false)
tr1: tr2:
1 1
/ \ / \
6 2* 6 7
/ \ / \ / \ / \
3 4 17* 11 3 4 14 2
\ / \ \ \ / \ \
8 19* 12 10 8 9 11 10
/ /
5 5
(* = על המסלול העולה 1->2->17->19, לפי הסימון בשאלון)
סעיף א
ממש ב-Java (או C#) את הפעולה "מסלול-עולה" בעבור עץ מספרים tr.
public static bool UpPath(BinNode<int> tr)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.