נתונות הפעולות sod ו-what, הפועלות על תור של מספרים שלמים שונים מאפס:
public static void sod(Queue<Integer> q)
{
q.insert(0);
what(q);
q.remove();
}
public static void what(Queue<Integer> 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<Integer> q)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.