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

הפעולה sod משתמשת ב-0 כשומר-סף ובפעולת עזר רקורסיבית what כדי לסדר מחדש תור של מספרים חיוביים ושליליים (ללא אפסים). ארבעה סעיפים: מעקב על דוגמה, ניתוח טענות על 'ללא שינוי', אפיון כללי, ומימוש איטרטיבי שווה-ערך.

public static void Sod(Queue<int> q)
{
q.Insert(0);
     What(q);
q.Remove();
}

public static void What(Queue<int> q)
{
    if (q.Head() != 0)
    {
      int x = q.Remove();
      if (x > 0)
q.Insert(x);
      What(q);
      if (x < 0)
q.Insert(x);
    }
}

התור q לדוגמה עבור סעיף א' (ראש התור בצד ימין, לפי אותה מוסכמת חצים כמו שאלה 1/5: ראש=שמאל בציור).

ראש→ 3 | -1 | 7 | 2 | 4 | -9 ←סוף
סעיף א

מה יהיה התוכן של התור q אחרי זימון הפעולה Sod(q) עבור התור הבא (ראו איור)? יש להראות מעקב אחרי ביצוע הפעולה.

סעיף ב

אחרי זימון הפעולה Sod(q) עבור התור q לא ריק, התור q נשאר ללא שינוי. לפניכם ארבע טענות (זהות לגרסת Java). עבור כל אחת ציינו אם היא נכונה או לא, ותנו דוגמה של תור מתאימה.

סעיף ג

מה מבצעת הפעולה Sod באופן כללי עבור תור של מספרים שליליים וחיוביים (ללא אפסים)?

סעיף ד

כתבו את הפעולה Sod בלי שימוש ברקורסיה.

public static void Sod(Queue<int> q)

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

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

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

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