אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2016 · קיץ מועד א · שאלה 6כל שאלות המבחן ←
עציםעצים בינאריים

"עץ מספרים" הוא עץ בינארי לא ריק מטיפוס 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)

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי