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

הגדרה:

מחסנית של מספרים שלמים וחיוביים נקראת "מחסנית תקינה עבור הספרה K", אם יש לפחות מספר אחד שמתחיל בספרה K וכל המספרים שמתחילים ב-K נמצאים ברצף ולא נמצאים באף מיקום אחר במחסנית.

לדוגמה: המחסנית שלפניכם היא "מחסנית תקינה" עבור הספרות K=2,5,9 אבל לא תקינה עבור ספרות אחרות.

⚠️ ערכי המחסנית בעמוד המקורי מוצגים כטור אנכי (תרשים מחסנית); הערכים שחולצו (סדר לא ודאי – עליון/תחתון): 31, 307, 2, 2215, 3, 900, 987, 91, 40, 37, 4, 555, 41. יש לאמת את סדר הערכים המדויק מול עמוד המקור (עמ' 3 C# / עמ' 15 Java) לפני שימוש.

סעיף א

כתבו פעולה המקבלת מחסנית של מספרים שלמים וחיוביים st וספרה k. הפעולה תבדוק אם מחסנית היא "מחסנית תקינה" עבור ספרה זו. אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false. כותרת הפעולה:

public static boolean isProperK(Stack<Integer> st, int k)
סעיף ב

כתבו פעולה המקבלת מחסנית של מספרים שלמים st וספרה k. הפעולה תבדוק אם המחסנית היא "מחסנית תקינה עבור k". אם כן – הפעולה לא תבצע דבר, ואם לא – הפעולה תשנה את סדר המספרים במחסנית כך שהיא תהיה "תקינה עבור k". אפשר להניח שבמחסנית יש לפחות מספר אחד אשר מתחיל ב-k. כותרת הפעולה:

public static void fixIt(Stack<Integer> st, int k)
סעיף ג

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

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

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

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

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