נתונות הפעולות What ו-Secret.
public static int What (Queue<int> q , int x)
{
if ( q.IsEmpty() || x != q.Head() )
return 0;
x = q.Remove();
return 1 + What(q , x);
}
public static int Secret(Queue<int> q)
{
if (q.IsEmpty()) return 0;
int x = q.Head();
int z = x * What(q, x);
int y = 1 + Secret(q);
q.Insert(z);
return y;
}
סעיף א
עקבו אחר ביצוע הפעולה What (ראו קוד לעיל). ענו:
- מה יחזיר זימון הפעולה What(q,5) עבור התור q:[5,5,5,3,3,2,8] (5 בראש התור)? יש להראות מעקב אחרי ביצוע הפעולה.
- אחרי זימון הפעולה What(q, x) עבור התור q לא ריק, התור q נשאר ללא שינוי. האם הטענה 'ערך x לא מופיע בתור' נכונה? הסבירו את תשובתכם.
- תנו דוגמה של תור q שעבורו זימון הפעולה What(q, 7) תחזיר 4. איך ייראה התור אחרי זימון הפעולה?
- מה מבצעת הפעולה?
סעיף ב
נתונה הפעולה Secret (ראו קוד לעיל). עקבו אחר הפעולה Secret(q) עבור התור q:[5,5,1,1,4,4,4,5,6] (5 בראש התור). אין צורך לפרט את המעקב אחרי הפעולה What. ענו:
- מהו הערך המוחזר מהפעולה Secret?
- איך ייראה התור בסיום הפעולה Secret?
- אחרי זימון הפעולה Secret(q) התור q נראה כך: q:[6,16,2,3] (6 בראש התור). איך נראה התור q לפני זימון הפעולה?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.