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

הגדרה: תור מחרוזות "תקין" הוא תור שבו כל המחרוזות המתחילות באותה האות נמצאות רק בתחילת התור.

לדוגמה, התור שלפניכם הוא "תור תקין": Cure, Cube, Cab, Crowd, Apple, Banana, Dog. גם התור הזה הוא "תור תקין": Cure, Cube, Cab, Crowd. אבל התור הזה אינו "תור תקין": Cure, Cube, Cab, Crowd, Apple, Cat, Dog.

exampleQueues: [[Cure, Cube, Cab, Crowd, Apple, Banana, Dog], [Cure, Cube, Cab, Crowd], [Cure, Cube, Cab, Crowd, Apple, Cat, Dog]]

סעיף א

public static void AddToProperQueue(Queue<string> q, string s)

כתבו פעולה המקבלת תור של מחרוזות "תקין" q ומחרוזת s. הפעולה תוסיף את המחרוזת לתור כך שהוא יישאר תקין.

סעיף ב

public static bool IsProperQueue(Queue<string> q)

כתבו פעולה המקבלת תור של מחרוזות. הפעולה תבדוק אם התור הוא "תור תקין". אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.

סעיף ג

public static void FixIt(Queue<string> q)

כתבו פעולה המקבלת תור של מחרוזות. הפעולה תבדוק אם התור הוא "תור תקין" ואם לא, הפעולה תשנה את סדר המחרוזות בתור כך שהוא יהיה "תקין".

סעיף ד

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

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

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

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

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