שני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של M האיברים הראשונים של התור השני. יש לפתור באמצעות פעולות התור בלבד (insert/remove/head/isEmpty), ללא מערך או רשימה מקושרת, ולשמור על מבנה שני התורים בסיום כל פעולה.
שני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של M האיברים הראשונים של התור השני. יש לפתור באמצעות פעולות התור בלבד (insert/remove/head/isEmpty), ללא מערך או רשימה מקושרת, ולשמור על מבנה שני התורים בסיום כל פעולה.
q1, q2 לדוגמה
q1 (ראש->סוף): 2,5,4,4,7,2,6
q2 (ראש->סוף): 2,6,7,1,4,2,1,8,1
כתבו פעולה ששמה isMConnect בשפת Java או IsMConnect בשפת C#, המקבלת תור ראשון - q1, ותור שני - q2 (שניהם מטיפוס שלם) ומשתנה שלם M. הפעולה תחזיר true אם התור q1 הוא "M-מחובר" לתור q2, אחרת היא תחזיר false. הערות:
- בסיום הפעולה חובה לשמור על מבנה שני התורים כפי שהתקבלו.
- אין להשתמש בסעיף זה במערך או ברשימה מקושרת. פתרון הכולל שימוש בהם לא יזוכה בנקודות.
- הניחו ש-M קטן או שווה מאורך 2 התורים. דוגמה: עבור התורים q1,q2 שלפניכם: עבור M=1 יוחזר false (ערך האיבר האחרון של q1 - 6, שונה מערך האיבר הראשון של q2 - 2). עבור M=2 יוחזר true (ערכי שני האיברים האחרונים של q1 שווים לפי אותו סדר לערכי שני האיברים הראשונים של q2). עבור M=3 יוחזר false (ערכי שלושת האיברים האחרונים של q1 - 7,2,6, אינם שווים לפי אותו סדר לערכי שלושת האיברים הראשונים של q2 - 2,6,7).
public static boolean isMConnect (Queue<Integer> q1, Queue<Integer> q2, int M)
כתבו פעולה בשם maxConnect בשפת Java או MaxConnect בשפת C#, המקבלת תור ראשון q1, ותור שני q2 (שניהם מטיפוס שלם). הפעולה תחזיר את ה-M הגדול ביותר שעבורו שני התורים הם "M-מחוברים", אם הם לא מחוברים בכלל, יוחזר 0. הערה: ניתן להשתמש בפעולה מסעיף א. דוגמאות: עבור שני התורים מהדוגמה בסעיף א, והזימון maxConnect(q1,q2) יוחזר המספר 2 (יש שני איברים בסוף q1 שזהים לתחילת q2. כאשר מגדילים את M הם אינם זהים). עבור אותם התורים והזימון maxConnect(q2,q1) יוחזר המספר 0 (אין איברים בסוף q2 שמתאימים לתחילת q1 אף עבור M=1).
public static int maxConnect (Queue<Integer> q1, Queue<Integer> q2)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.