אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2023 · אביב מועד ב · שאלה 1כל שאלות המבחן ←
מבנים לינארייםתורים

ציוני תלמידים שמורים בתור אחד (marks) כאשר קבוצת הציונים של כל תלמיד מופרדת מהקבוצה שאחריה בערך 1-. arrangeData/ArrangeData בונה תור שני (tests) עם מספר הציונים (=מספר הבחינות) של כל תלמיד, ובמקביל מנקה את marks מערכי ההפרדה. לדוגמה: marks לפני = 80,90,100,-1,75,96,-1,100,100,97,96,-1,-1,88,94,-1 (חמישה תלמידים, כולל תלמיד רביעי ללא ציונים כלל); marks אחרי = 80,90,100,75,96,100,100,97,96,88,94; tests = 3,2,4,0,2.

תור הציונים marks לדוגמה, לפני העדכון (מראש התור לסופו). ה-1- מפריד בין קבוצות הציונים של תלמיד לתלמיד; ריבוע אפור = תא הפרדה.

ראש התור → 80 | 90 | 100 | -1 | 75 | 96 | -1 | 100 | 100 | 97 | 96 | -1 | -1 | 88 | 94 | -1 ← סוף התור

תור הציונים marks לדוגמה, אחרי העדכון (ללא ערכי ההפרדה) — הפלט של arrangeData דרך הפרמטר עצמו.

ראש התור → 80 | 90 | 100 | 75 | 96 | 100 | 100 | 97 | 96 | 88 | 94 ← סוף התור

תור הבחינות tests לדוגמה — מספר הבחינות שהשלים כל תלמיד, לפי אותו סדר תלמידים (זהו הערך המוחזר מ-arrangeData).

ראש התור → 3 | 2 | 4 | 0 | 2 ← סוף התור
סעיף א

כתבו פעולה בשם ArrangeData המקבלת תור ציונים ומחזירה תור חדש המכיל עבור כל אחד מהתלמידים את מספר הבחינות שהשלים. הפעולה גם צריכה לעדכן את תור הציונים כך שיכיל רק ציונים ללא ערך ההפרדה 1-. כותרת הפעולה: public static Queue<int> ArrangeData(Queue<int> marks)

סעיף ב

מהי סיבוכיות הפעולה ArrangeData שכתבתם בסעיף א'? הסבירו את תשובתכם.

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

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

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

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