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

הערה כללית לשאלה:

  • אין להשתמש במבני נתונים נוספים פרט לתור או תורים נוספים.
  • אפשר להניח שקיימת פעולה public static int Size(Queue<int> q) המחזירה מספר איברים בתור q.
סעיף א

הגדרה: תור q1 נקרא "תור התחלתי" של תור q2 אם כל האיברים של q1 נמצאים בתחילת התור q2 באותו הסדר.

לדוגמה:

התור q1: 12, 3, 2, 10

הוא תור התחלתי של התור q2: 4, 1, 3, 7, 10, 12, 2

⚠️ סדר האיברים בתרשים התור שוחזר לפי סדר עמודות הטקסט; כיוון ראש/סוף התור לא ודאי — לאמת מול ה-PDF.

כתבו פעולה המקבלת שני תורים של מספרים שלמים q1 ו-q2. הפעולה תבדוק אם q1 הוא תור התחלתי של q2. אם כן – הפעולה תחזיר ערך true, ולא – הפעולה תחזיר ערך false. כותרת הפעולה: public static bool StartWith(Queue&lt;int> q1, Queue&lt;int> q2)

סעיף ב

הגדרה: תור q2 נקרא "שכפול" של תור q1 אם כל האיברים של q1 נמצאים בתור q2 באותו הסדר כמה פעמים (התור q2 מורכב ממספר של תורים q1).

עבור התור q1: 4, 1, 3, 7

התור q2 הוא "שכפול" של התור q1: 4, 1, 3, 7, 4, 1, 3, 7, 4, 1, 3, 7

⚠️ סדר איברי התור שוחזר לפי עמודות הטקסט; לאמת מול ה-PDF.

כתבו פעולה המקבלת שני תורים של מספרים שלמים q1 ו-q2. הפעולה תבדוק אם q2 הוא "שכפול" של q1. אם כן – הפעולה תחזיר ערך true, ולא – הפעולה תחזיר ערך false. כותרת הפעולה: public static bool Duplication(Queue&lt;int> q1, Queue&lt;int> q2)

סעיף ג

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

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

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

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

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