אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 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 boolean order (BinNode<Range> tree)

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

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

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

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