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

נתונה המחלקה Range שיש לה שתי תכונות: low -- מספר מטיפוס שלם. high -- מספר מטיפוס שלם, גדול מ-low. הנח שלכל תכונה הוגדרו ב-Java הפעולות get/set (ובC# Get/Set). עץ טווחים הוא עץ שאיבריו הם אובייקטי Range. עץ טווחים מסודר הוא עץ ריק, או עץ שבו לכל צומת מתקיימים: (1) אם יש בן שמאלי -- ה-low של הצומת שווה ל-low של הבן השמאלי, וה-high של הצומת גדול או שווה ל-high של הבן השמאלי; (2) אם יש בן ימני -- ה-high של הצומת שווה ל-high של הבן הימני, וה-low של הצומת קטן או שווה ל-low של הבן הימני; (3) אם יש שני בנים -- ה-high של הבן השמאלי קטן מה-low של הבן הימני. השאלה כוללת סעיף יחיד (ללא תת-סעיפים נוספים) ולכן מסומנת כסעיף א.

public class Range {
    private int low;
    private int high;
    public Range(int low, int high) { this.low = low; this.high = high; }
    public int GetLow() { return low; }
    public void SetLow(int low) { this.low = low; }
    public int GetHigh() { return high; }
    public void SetHigh(int high) { this.high = high; }
}

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; }
}

דוגמה לעץ טווחים מסודר: שורש [1,10]; בן שמאלי [1,4] עם בן שמאלי [1,3]; בן ימני [5,10] עם בנים [5,6] ו-[8,10]

            [1,10]
           /      \
       [1,4]      [5,10]
        /          /    \
     [1,3]      [5,6]  [8,10]
סעיף א

כתוב פעולה חיצונית בוליאנית בשם order (ב-C#: Order), המקבלת עץ טווחים (או עץ ריק), ומחזירה true אם העץ הוא עץ טווחים מסודר, אחרת -- מחזירה false.

public static bool Order (BinNode<Range> tree)

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

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

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

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