בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
בשאלה זו תוכל להשתמש בפעולה החיצונית שלפניך בלי לממש אותה.
java
1publicstaticint size (Queue<Integer> q)
הפעולה מחזירה את מספר האיברים בתור q בלי לשנות את התור.
משימות
אמשימה א
מימוש50%
שני תורים, q1 ו־q2, יהיו "תורים זהים" אם מספר האיברים בשני התורים זהה, ובשני התורים מופיעים בדיוק אותם ערכים ובאותו הסדר.
✎ דוגמה לשני תורים זהים
q1: 6, 2, 8, 9q2: 6, 2, 8, 9
כתוב פעולה חיצונית ששמה isIdentical המקבלת שני תורים מטיפוס שלם q1 ו-q2, ומחזירה true אם התורים זהים, אחרת היא מחזירה false.
⚠ הערה — אילוץ מחייב
עם סיום הפעולה, חובה לשמור על מבנה התורים המקורי שהתקבל.
במשימה ב
מימוש50%
"העברה מההתחלה לסוף" היא העברת מספר מראש התור לסופו.
✎ דוגמה
התור המקורי
q: 4, 6, 2, 5
התור אחרי "העברה מההתחלה לסוף"
q: 6, 2, 5, 4
כתוב פעולה חיצונית ששמה isSimilar המקבלת שני תורים מטיפוס שלם, q1 ו־q2.
הפעולה מחזירה true אם התורים q1 ו־q2 זהים — בין שהם זהים כמו שהם ובין שהם יהיו זהים לאחר שנבצע ב־q1 "העברה מההתחלה לסוף", פעם אחת או יותר. אחרת הפעולה מחזירה false.
✎ דוגמה
הפעולה תחזיר true בעבור שני התורים q1 ו־q2 שלפניך:
q1: 4, 6, 5, 7q2: 5, 7, 4, 6
זאת מכיוון שלאחר שבתור q1 נבצע פעמיים "העברה מההתחלה לסוף", הוא יהיה זהה לתור q2, וייראה כך:
q1: 5, 7, 4, 6
הערות
חובה להשתמש בפעולה שכתבת בסעיף א.
אין צורך לשמור על מבנה התורים המקורי שהתקבל.
שפת התכנות שלי
שאלה 7מבני נתונים2021 קיץ מועד אתורסה״כ 20 נק׳
השוואת תורים ובדיקת דמיון מעגלי
שימו לב
בכל שאלה שנדרש בה מימוש אפשר להשתמש בפעולות של המחלקות: תור, מחסנית, עץ בינרי וחוליה, בלי לממש אותן. אם משתמשים בפעולות נוספות, יש לממש אותן.
בשאלה זו תוכל להשתמש בפעולה החיצונית שלפניך בלי לממש אותה.
java
1publicstaticint size (Queue<Integer> q)
הפעולה מחזירה את מספר האיברים בתור q בלי לשנות את התור.
משימות
אמשימה א
מימוש50%
שני תורים, q1 ו־q2, יהיו "תורים זהים" אם מספר האיברים בשני התורים זהה, ובשני התורים מופיעים בדיוק אותם ערכים ובאותו הסדר.
✎ דוגמה לשני תורים זהים
q1: 6, 2, 8, 9q2: 6, 2, 8, 9
כתוב פעולה חיצונית ששמה isIdentical המקבלת שני תורים מטיפוס שלם q1 ו-q2, ומחזירה true אם התורים זהים, אחרת היא מחזירה false.
⚠ הערה — אילוץ מחייב
עם סיום הפעולה, חובה לשמור על מבנה התורים המקורי שהתקבל.
במשימה ב
מימוש50%
"העברה מההתחלה לסוף" היא העברת מספר מראש התור לסופו.
✎ דוגמה
התור המקורי
q: 4, 6, 2, 5
התור אחרי "העברה מההתחלה לסוף"
q: 6, 2, 5, 4
כתוב פעולה חיצונית ששמה isSimilar המקבלת שני תורים מטיפוס שלם, q1 ו־q2.
הפעולה מחזירה true אם התורים q1 ו־q2 זהים — בין שהם זהים כמו שהם ובין שהם יהיו זהים לאחר שנבצע ב־q1 "העברה מההתחלה לסוף", פעם אחת או יותר. אחרת הפעולה מחזירה false.
✎ דוגמה
הפעולה תחזיר true בעבור שני התורים q1 ו־q2 שלפניך:
q1: 4, 6, 5, 7q2: 5, 7, 4, 6
זאת מכיוון שלאחר שבתור q1 נבצע פעמיים "העברה מההתחלה לסוף", הוא יהיה זהה לתור q2, וייראה כך: