טוען...
טוען...
שים לב
בכל שאלה שנדרש בה מימוש אתה יכול להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
נתונה המחלקה Range שיש לה שתי תכונות:
low: מספר מטיפוס שלם.high: מספר מטיפוס שלם.high גדול מ-low.
הנח שלכל תכונה הוגדרו הפעולות get ו-set.
עץ טווחים הוא עץ שאיבריו הם מטיפוס Range.
עץ טווחים מסודר הוא עץ ריק או עץ טווחים שבו עבור כל צומת מתקיימים התנאים האלה:
low של הצומת שווה ל-low של הבן השמאלי, וה-high של הצומת גדול או שווה ל-high של הבן השמאלי.high של הצומת שווה ל-high של הבן הימני, וה-low של הצומת קטן או שווה ל-low של הבן הימני.high של הבן השמאלי קטן מה-low של הבן הימני.✎ דוגמה לעץ טווחים מסודר
tree -> [1 | 10] [1 | 10] -> שמאל [1 | 4] , ימין [5 | 10] [1 | 4] -> שמאל [1 | 3] [5 | 10] -> שמאל [5 | 6] , ימין [8 | 10]
כתוב פעולה חיצונית בוליאנית בשם order, המקבלת עץ טווחים או עץ ריק ומחזירה true אם העץ הוא עץ טווחים מסודר, אחרת — הפעולה מחזירה false.
שים לב
בכל שאלה שנדרש בה מימוש אתה יכול להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם אתה משתמש בפעולות נוספות, עליך לממש אותן.
נתונה המחלקה Range שיש לה שתי תכונות:
low: מספר מטיפוס שלם.high: מספר מטיפוס שלם.high גדול מ-low.
הנח שלכל תכונה הוגדרו הפעולות get ו-set.
עץ טווחים הוא עץ שאיבריו הם מטיפוס Range.
עץ טווחים מסודר הוא עץ ריק או עץ טווחים שבו עבור כל צומת מתקיימים התנאים האלה:
low של הצומת שווה ל-low של הבן השמאלי, וה-high של הצומת גדול או שווה ל-high של הבן השמאלי.high של הצומת שווה ל-high של הבן הימני, וה-low של הצומת קטן או שווה ל-low של הבן הימני.high של הבן השמאלי קטן מה-low של הבן הימני.✎ דוגמה לעץ טווחים מסודר
tree -> [1 | 10] [1 | 10] -> שמאל [1 | 4] , ימין [5 | 10] [1 | 4] -> שמאל [1 | 3] [5 | 10] -> שמאל [5 | 6] , ימין [8 | 10]
כתוב פעולה חיצונית בוליאנית בשם order, המקבלת עץ טווחים או עץ ריק ומחזירה true אם העץ הוא עץ טווחים מסודר, אחרת — הפעולה מחזירה false.