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

נתונות הפעולות Sod ו-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 עבור סעיף א' (הערך 3 בראש התור, הערך ‎-9 בסופו):

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

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

סעיף ב

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

  1. זה יכול לקרות רק כאשר בתור יש ערך אחד בלבד.
  2. זה יכול לקרות רק כאשר התור מלא בערכים חיוביים בלבד.
  3. זה יכול לקרות רק כאשר התור מלא בערכים שליליים בלבד.
  4. לא ייתכן שבתור יש גם ערכים חיוביים וגם ערכים שליליים.
סעיף ג

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

סעיף ד

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

public static void Sod(Queue<int> q)

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

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

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

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