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

סעיף א

הגדרה 1: תור "מושלם N" הוא תור של מספרים שלמים המכיל את כל המספרים שבין 1 ל-N (כולל).

לדוגמה: התור הבא הוא תור מושלם של 5 אבל לא תור מושלם של 7 (כי מספר 6 אינו מופיע בתור). 4, 5, 3, 15, 2, 4, 1, 7 (מהראש לזנב)

כתבו פעולה public static bool IsPerfectN(Queue<int> q, int n) המקבלת תור של מספרים שלמים q ומספר שלם וחיובי n. הפעולה תבדוק אם תור הוא "תור מושלם של n". אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.

public static bool IsPerfectN(Queue<int> q, int n)
סעיף ב

הגדרה 2: תור "סופר מושלם N" הוא תור של מספרים שלמים המכיל את כל המספרים שבין 1 ל-N (כולל) ורק אותם.

כתבו פעולה public static void DoItSuper(Queue<int> q, int n) המקבלת תור של מספרים שלמים q ומספר שלם וחיובי n. הפעולה מורידה מתור ערכים מיותרים ומוסיפה בסוף התור ערכים חסרים, כך שיתקבל תור "סופר מושלם n".

אם לפני זימון הפעולה התור q היה (מהראש לזנב): 4, 5, 3, 15, 2, 4, 1, 7

אז אחרי ביצוע זימון הפעולה DoItSuper(q, 9) התור q יהיה (מהראש לזנב): 4, 5, 3, 2, 4, 1, 7, 6, 8, 9

public static void DoItSuper(Queue<int> q, int n)
סעיף ג

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

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

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

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

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