הערה כללית לשאלה:
הערה כללית לשאלה:
- אין להשתמש במבני נתונים נוספים פרט לתור או תורים נוספים.
- אפשר להניח שקיימת פעולה
public static int size(Queue<Integer> 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 boolean startWith(Queue<Integer> q1, Queue<Integer> 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
כתבו פעולה המקבלת שני תורים של מספרים שלמים q1 ו-q2. הפעולה תבדוק אם q2 הוא "שכפול" של q1. אם כן – הפעולה תחזיר ערך true, ולא – הפעולה תחזיר ערך false.
כותרת הפעולה:
public static boolean duplication(Queue<Integer> q1, Queue<Integer> q2)
מהן סיבוכיות של הפעולות שכתבתם בסעיפים א'-ב'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.