נתונה פעולה חיצונית Size, זמינה לשימוש, המחזירה את מספר האיברים בתור בלי לשנותו.
// פעולה נתונה (זמינה לשימוש, אין לממש):
// public static int Size (Queue<int> q)
// מחזירה את מספר האיברים בתור q, בלי לשנות את התור.
שני תורים זהים (סעיף א) ודוגמת דמיון מעגלי אחרי שתי העברות (סעיף ב)
section a: q1=[6,2,8,9] q2=[6,2,8,9] (front->back) -> identical
section b: q1=[4,6,5,7] -> after 1 rotation [6,5,7,4] -> after 2 rotations [5,7,4,6] == q2
שני תורים q1,q2 "תורים זהים" אם מספר האיברים בשני התורים זהה, ושני התורים מופיעים בדיוק באותם ערכים ובאותו הסדר. כתוב פעולה חיצונית ששמה IsIdentical המקבלת שני תורים מטיפוס שלם, ומחזירה true אם q1 ו-q2 זהים, אחרת מחזירה false. הערה: עם סיום הפעולה, חובה לשמור על מבנה התורים המקורי שהתקבל.
public static bool IsIdentical (Queue<int> q1, Queue<int> q2)
"העברה מההתחלה לסוף" היא העברת הערך מראש התור לסוף התור. כתוב פעולה חיצונית ששמה IsSimilar המקבלת שני תורים מטיפוס שלם, ומחזירה true אם q1 ו-q2 דומים - בין אם הם זהים כמו שהם, ובין אם הם יהיו זהים לאחר שנבצע ב-q1 "העברה מההתחלה לסוף" פעם אחת או יותר, אחרת מחזירה false. הערות: חובה להשתמש בפעולה שכתבת בסעיף א; אין צורך לשמור על מבנה התורים המקורי שהתקבל.
public static bool IsSimilar (Queue<int> q1, Queue<int> q2)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.