אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2025 · אביב מועד א · שאלה 8כל שאלות המבחן ←
מבנים לינארייםרשימות מקושרות

הגדרה: קבוצת מספרים – 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)
סעיף ד

מהן הסיבוכיות של הפעולות שכתבתם בסעיפים א'–ג'? הסבירו את תשובתכם.

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

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

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

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