שאלה 2מבני נתונים2025 קיץ מועד במימוש מבנה נתוניםסה״כ 25 נק׳
תורים M-מחוברים
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
שני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של- M האיברים הראשונים של התור השני.
משימות
אמשימה א
מימושניקוד לא ידוע
כתבו פעולה ששמה isMConnect בשפת Java, המקבלת תור ראשון - q1, ותור שני - q2 (שניהם מטיפוס שלם) ומשתנה מטיפוס שלם M.
הפעולה תחזיר true אם התור q1 הוא M-מחוברשני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של- M האיברים הראשונים של התור השני לתור q2, אחרת היא תחזיר false.
הערות
בסיום הפעולה חובה לשמור על מבנה שני התורים כפי שהתקבלו.
אין להשתמש בסעיף זה במערך או ברשימה מקושרת. פתרון הכולל שימוש בהם לא יזוכה בנקודות.
הניחו ש- M קטן או שווה מאורך 2 התורים.
✎ לדוגמה
עבור התורים שלפניכם:
q1 — ראש התור: 2, 5, 4, 4, 7, 2, 6 :סוף התור
מודגשים: שני האיברים האחרונים, 2 ו- 6q2 — ראש התור: 2, 6, 7, 1, 4, 2, 1, 8, 1 :סוף התור
מודגשים: שני האיברים הראשונים, 2 ו- 6
עבור M = 1 יוחזר false (ערך האיבר האחרון של q1 - 6, שונה מערך האיבר הראשון של q2 - 2).
עבור M = 2 יוחזר true (ערכי שני האיברים האחרונים של q1שווים לפי אותו סדר לערכי שני האיברים הראשונים של q2).
עבור M = 3 יוחזר false (ערכי שלושת האיברים האחרונים של q1 – 7,2,6, אינם שווים לפי אותו סדר לערכי שלושת האיברים הראשונים של q2 - 2,6,7).
במשימה ב
מימושניקוד לא ידוע
כתבו פעולה בשם maxConnect בשפת Java, המקבלת תור ראשון q1 ותור שני q2 (שניהם מטיפוס שלם).
הפעולה תחזיר את ה- M הגדול ביותר שעבורו מתקיים ש- q1M-מחוברשני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של- M האיברים הראשונים של התור השני ל- q2. אם הם לא מחוברים בכלל, יוחזר 0.
הערה
ניתן להשתמש בפעולה מסעיף א.
✎ דוגמאות
עבור שני התורים מהדוגמה בסעיף א, והזימון maxConnect(q1,q2) יוחזר המספר 2 (יש שני איברים בסוף q1 שזהים לתחילת q2. כאשר מגדילים את M הם אינם זהים).
עבור אותם שני התורים והזימון maxConnect(q2,q1) יוחזר המספר 0 (אין איברים בסוף q2 שמתאימים לתחילת q1 עבור אף M).
שפת התכנות שלי
שאלה 2מבני נתונים2025 קיץ מועד במימוש מבנה נתוניםסה״כ 25 נק׳
תורים M-מחוברים
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
שני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של- M האיברים הראשונים של התור השני.
משימות
אמשימה א
מימושניקוד לא ידוע
כתבו פעולה ששמה isMConnect בשפת Java, המקבלת תור ראשון - q1, ותור שני - q2 (שניהם מטיפוס שלם) ומשתנה מטיפוס שלם M.
הפעולה תחזיר true אם התור q1 הוא M-מחוברשני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של- M האיברים הראשונים של התור השני לתור q2, אחרת היא תחזיר false.
הערות
בסיום הפעולה חובה לשמור על מבנה שני התורים כפי שהתקבלו.
אין להשתמש בסעיף זה במערך או ברשימה מקושרת. פתרון הכולל שימוש בהם לא יזוכה בנקודות.
הניחו ש- M קטן או שווה מאורך 2 התורים.
✎ לדוגמה
עבור התורים שלפניכם:
q1 — ראש התור: 2, 5, 4, 4, 7, 2, 6 :סוף התור
מודגשים: שני האיברים האחרונים, 2 ו- 6q2 — ראש התור: 2, 6, 7, 1, 4, 2, 1, 8, 1 :סוף התור
מודגשים: שני האיברים הראשונים, 2 ו- 6
עבור M = 1 יוחזר false (ערך האיבר האחרון של q1 - 6, שונה מערך האיבר הראשון של q2 - 2).
עבור M = 2 יוחזר true (ערכי שני האיברים האחרונים של q1שווים לפי אותו סדר לערכי שני האיברים הראשונים של q2).
עבור M = 3 יוחזר false (ערכי שלושת האיברים האחרונים של q1 – 7,2,6, אינם שווים לפי אותו סדר לערכי שלושת האיברים הראשונים של q2 - 2,6,7).
במשימה ב
מימושניקוד לא ידוע
כתבו פעולה בשם maxConnect בשפת Java, המקבלת תור ראשון q1 ותור שני q2 (שניהם מטיפוס שלם).
הפעולה תחזיר את ה- M הגדול ביותר שעבורו מתקיים ש- q1M-מחוברשני תורים הם "M-מחוברים" אם ערכם של M האיברים האחרונים של התור הראשון זהים (לפי אותו סדר) לערכם של- M האיברים הראשונים של התור השני ל- q2. אם הם לא מחוברים בכלל, יוחזר 0.
הערה
ניתן להשתמש בפעולה מסעיף א.
✎ דוגמאות
עבור שני התורים מהדוגמה בסעיף א, והזימון maxConnect(q1,q2) יוחזר המספר 2 (יש שני איברים בסוף q1 שזהים לתחילת q2. כאשר מגדילים את M הם אינם זהים).
עבור אותם שני התורים והזימון maxConnect(q2,q1) יוחזר המספר 0 (אין איברים בסוף q2 שמתאימים לתחילת q1 עבור אף M).