הערה כללית לשאלה:
הערה כללית לשאלה:
- אין להשתמש במבני נתונים נוספים פרט לתור או תורים נוספים.
- אפשר להניח שקיימת פעולה
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)
מהן סיבוכיות של הפעולות שכתבתם בסעיפים א'-ב'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.