הערה כללית לשאלה:
הערה כללית לשאלה:
- אין להשתמש במבני נתונים נוספים פרט לתור או תורים נוספים.
- אפשר להניח שקיימת פעולה
public static int Size(Queue<int> q)המחזירה מספר איברים בתור q.
הגדרה: תור q1 נקרא "תור התחלתי" של תור q2 אם כל האיברים של q1 נמצאים בתחילת התור q2 באותו הסדר.
לדוגמה:
התור q1 (מהראש לסוף): 2, 10, 12, 3
הוא תור התחלתי של התור q2 (מהראש לסוף): 2, 10, 12, 3, 7, 4, 1
כתבו פעולה המקבלת שני תורים של מספרים שלמים q1 ו-q2. הפעולה תבדוק אם q1 הוא תור התחלתי של q2. אם כן – הפעולה תחזיר ערך true, ולא – הפעולה תחזיר ערך false.
כותרת הפעולה:
public static bool StartWith(Queue<int> q1, Queue<int> q2)
הגדרה: תור q2 נקרא "שכפול" של תור q1 אם כל האיברים של q1 נמצאים בתור q2 באותו הסדר כמה פעמים (התור q2 מורכב ממספר של תורים q1).
עבור התור q1 (מהראש לסוף): 3, 7, 4, 1
התור q2 הוא "שכפול" של התור q1 (מהראש לסוף): 3, 7, 4, 1, 3, 7, 4, 1, 3, 7, 4, 1
כתבו פעולה המקבלת שני תורים של מספרים שלמים q1 ו-q2. הפעולה תבדוק אם q2 הוא "שכפול" של q1. אם כן – הפעולה תחזיר ערך true, ולא – הפעולה תחזיר ערך false.
כותרת הפעולה:
public static bool Duplication(Queue<int> q1, Queue<int> q2)
מהן סיבוכיות של הפעולות שכתבתם בסעיפים א'-ב'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.