הגדרה: קבוצת מספרים – SetOfNumbers – היא אוסף של מספרים, כאשר כל מספר יכול להופיע בקבוצה פעם אחת בלבד. אין חשיבות לסדר המספרים בקבוצה.
הגדרה: קבוצת מספרים – SetOfNumbers – היא אוסף של מספרים, כאשר כל מספר יכול להופיע בקבוצה פעם אחת בלבד. אין חשיבות לסדר המספרים בקבוצה.
לפניכם ממשק חלקי של המחלקה SetOfNumbers המייצגת קבוצת מספרים שלמים.
| כותרת הפעולה | תיאור הפעולה |
|---|---|
public SetOfNumbers() | הפעולה בונה קבוצת מספרים ריקה |
public void AddToSet(int num) | הפעולה מוסיפה לקבוצה את המספר num, אם המספר לא נמצא בקבוצה. אם המספר num כבר נמצא בקבוצה, הפעולה לא עושה דבר. |
public int RemoveRandom() | הפעולה מחזירה באופן אקראי אחד מאיברי הקבוצה ומוחקת אותו מהקבוצה. הנחה: הקבוצה לא ריקה. |
public bool IsEmpty() | הפעולה מחזירה true אם הקבוצה הנוכחית ריקה, אחרת – הפעולה מחזירה false |
סיבוכיות של כל הפעולות האלה O(1).
שימו לב! מימוש של המחלקה SetOfNumbers לא ידוע, אפשר להשתמש אך ורק בפעולות הנתונות בממשק!
כתבו במחלקה SetOfNumbers פעולה פנימית המחזירה את מספר האיברים בקבוצה. יש לשמור על הקבוצה אחרי ביצוע הפעולה.
כותרת הפעולה:
public int SizeOfSet()
כתבו במחלקה SetOfNumbers פעולה פנימית המחזירה את המספר הקטן ביותר בקבוצה ומוחקת אותו מהקבוצה. הנחה: הקבוצה לא ריקה.
כותרת הפעולה:
public int RemoveMin()
כתבו פעולה חיצונית המקבלת שתי קבוצות sn1 ו-sn2. הפעולה תחזיר true אם כל האיברים בקבוצה sn1 גדולים מכל האיברים בקבוצה sn2, אם לא – הפעולה תחזיר false. יש לשמור על הקבוצה אחרי ביצוע הפעולה. הנחה: הקבוצות לא ריקות.
כותרת הפעולה:
public static bool Bigger(SetOfNumbers sn1, SetOfNumbers sn2)
מהן הסיבוכיות של הפעולות שכתבתם בסעיפים א'–ג'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.