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

  • אין להשתמש במבני נתונים נוספים פרט לתור או תורים נוספים.
  • אפשר להניח שקיימת פעולה 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<int> q1,
Queue<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<int> q1,
Queue<int> q2)`
(ג)מהן סיבוכיות של הפעולות שכתבתם בסעיפים א'-ב'? הסבירו את תשובתכם.

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

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

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

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←