public static boolean mmm (Queue<Integer> q, int z) { q.insert (0); int num = q.head(); int y = 0; while (q.head() > 0) { if (y < z) { if (q.head() == num) { y++; } else { num = q.head(); y = 1; } } q.insert (q.remove()); } q.remove(); return y == z; }
public static int what (Queue<Integer> q, int n) { if (mmm (q, n)) return n; return what (q, n - 1); }
עמוד 4 (Java) ועמוד 6 (C#): התור q הנתון לסעיף א
queue q (head on the LEFT, tail on the RIGHT, as the labels ראש התור / סוף התור are printed): | 1 | 3 | 1 | 1 | 1 | 2 | head -> 1, 3, 1, 1, 1, 2 <- tail
עמוד 4 (Java) ועמוד 6 (C#): טבלת המעקב הריקה של סעיף א(1)
טבלת המעקב הריקה של סעיף א (עמודות כפי שהן מודפסות, משמאל לימין על הדף):
| התור q | num | y | y < z | q.head() == num |
|---|---|---|---|---|
עמוד 5 (Java) ועמוד 7 (C#): התור q הנתון לסעיף ב (זהה לתור של סעיף א)
queue q (head on the LEFT, tail on the RIGHT, as the labels ראש התור / סוף התור are printed): | 1 | 3 | 1 | 1 | 1 | 2 | head -> 1, 3, 1, 1, 1, 2 <- tail
עמוד 5 (Java) ועמוד 7 (C#): טבלת המעקב המוצעת של סעיף ב(1)
טבלת המעקב המוצעת של סעיף ב (עמודות כפי שהן מודפסות, משמאל לימין על הדף):
| התור q שמתקבל בפעולה | הערך n שמתקבל בפעולה | mmm (q, n) == true | ערך מוחזר |
|---|---|---|---|
לפניכם הפעולה mmm , המקבלת תור – q ובו מספרים הגדולים מ־0 , ומספר שלם z – הגדול מ־0 . [קוד mmm/Mmm ב-code_context] נתון תור q מטיפוס שלם: [התור ב-figures] עקבו בעזרת טבלת המעקב שלפניכם אחר הפעולה mmm (q , 4) , וכתבו מה הפעולה מחזירה.
mmm (q, 4)
הסבירו מה הפעולה mmm עושה.
מהי סיבוכיות זמן הריצה של הפעולה mmm ? נמקו את תשובתכם.
לפניכם הפעולה what , המקבלת תור – q ובו מספרים הגדולים מ־0 , ואת גודל התור – n . [קוד what/What ב-code_context] נתון תור – q מטיפוס שלם: [התור ב-figures] עקבו אחר הפעולה what (q, 6) , וכתבו מה הפעולה מחזירה (אין צורך לעקוב אחר הפעולה mmm). המעקב יכלול בכל קריאה את הערכים של q , n ואת הערך המוחזר. לפניכם הצעה לטבלת מעקב (אין חובה להשתמש בטבלה זו).
הסבירו מה הפעולה what עושה.
מהי סיבוכיות זמן הריצה של הפעולה what ? נמקו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.