אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2025 · קיץ מועד א · שאלה 2כל שאלות המבחן ←
מבנים לינאריים›תורים

csharp

public static bool Mmm (Queue<int> 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<int> q, int n) { if (Mmm (q, n)) return n; return What (q, n - 1); }


`ראש התור → 1, 3, 1, 1, 1, 2 ← סוף התור`

טבלת המעקב הריקה של סעיף א(1)

התור qnumyy < zq.Head() == num

התור q הנתון לסעיף ב (זהה לתור של סעיף א)

`ראש התור → 1, 3, 1, 1, 1, 2 ← סוף התור`

טבלת המעקב המוצעת של סעיף ב(1)

התור q שמתקבל בפעולההערך n שמתקבל בפעולהMmm (q, n) == trueערך מוחזר
סעיף א(1)

לפניכם הפעולה Mmm , המקבלת תור – q ובו מספרים הגדולים מ־0 , ומספר שלם z – הגדול מ־0 . (הקוד מופיע בתחילת השאלה.) נתון תור q מטיפוס שלם: ראש התור → 1, 3, 1, 1, 1, 2 ← סוף התור עקבו בעזרת טבלת המעקב שלפניכם אחר הפעולה Mmm (q , 4) , וכתבו מה הפעולה מחזירה.

Mmm (q, 4)

סעיף א(2)

הסבירו מה הפעולה Mmm עושה.

סעיף א(3)

מהי סיבוכיות זמן הריצה של הפעולה Mmm ? נמקו את תשובתכם.

סעיף ב(1)

לפניכם הפעולה What , המקבלת תור – q ובו מספרים הגדולים מ־0 , ואת גודל התור – n . (הקוד מופיע בתחילת השאלה.) נתון תור – q מטיפוס שלם: ראש התור → 1, 3, 1, 1, 1, 2 ← סוף התור עקבו אחר הפעולה What (q, 6) , וכתבו מה הפעולה מחזירה (אין צורך לעקוב אחר הפעולה Mmm). המעקב יכלול בכל קריאה את הערכים של q , n ואת הערך המוחזר. לפניכם הצעה לטבלת מעקב (אין חובה להשתמש בטבלה זו).

What (q, 6)

סעיף ב(2)

הסבירו מה הפעולה What עושה.

סעיף ב(3)

מהי סיבוכיות זמן הריצה של הפעולה What ? נמקו את תשובתכם.

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

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

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

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