נתונות הפעולות 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 נשאר ללא שינוי. לפניכם ארבע טענות. עבור כל אחת ציינו אם היא נכונה או לא, ותנו דוגמה של תור מתאימה.
- זה יכול לקרות רק כאשר בתור יש ערך אחד בלבד.
- זה יכול לקרות רק כאשר התור מלא בערכים חיוביים בלבד.
- זה יכול לקרות רק כאשר התור מלא בערכים שליליים בלבד.
- לא ייתכן שבתור יש גם ערכים חיוביים וגם ערכים שליליים.
סעיף ג
מה מבצעת הפעולה Sod באופן כללי עבור תור של מספרים שליליים וחיוביים (ללא אפסים)?
סעיף ד
כתבו את הפעולה Sod בלי שימוש ברקורסיה.
public static void Sod(Queue<int> q)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.