הערה כללית לשאלה:
- אין להשתמש במבני נתונים נוספים פרט לתור/תורים.
- יש לשמור את התור במצב מקורי בסיום הפעולה.
- אפשר להניח שקיימת הפעולה Clone המחזירה העתק של התור. כותרת הפעולה:
public static Queue<Integer> clone(Queue<Integer> q)
סיבוכיות של הפעולה Clone היא O(n) כאשר n = מספר האיברים בתור.
(א)כתבו פעולה המקבלת תור של מספרים שלמים q ומספר שלם num. הפעולה תחזיר את מיקומו הראשון של num בתוך התור. אם num לא מופיע בתור, הפעולה תחזיר ערך -1.
לדוגמה: עבור התור q הבא והמספר num=3 (מהראש לזנב):
`18, 3, 15, 13, 3, 12, 21, 12, 10, 3, 7`
הפעולה תחזיר 2.
כותרת הפעולה:
```java
public static int firstPosition(Queue<Integer> q, int num)
```
לדוגמה: עבור התור q הבא והמספר num=3 (מהראש לזנב):
`18, 3, 15, 13, 3, 12, 21, 12, 10, 3, 7`
הפעולה תחזיר 2.
כותרת הפעולה:
```java
public static int firstPosition(Queue<Integer> q, int num)
```
(ב)כתבו פעולה המקבלת תור של מספרים שלמים q ומספר שלם num. הפעולה תחזיר את מיקומו האחרון של num בתוך התור. אם num לא מופיע בתור, הפעולה תחזיר ערך -1.
לדוגמה: עבור התור q הבא והמספר num=3 (מהראש לזנב):
`18, 3, 15, 13, 3, 12, 21, 12, 10, 3, 7`
הפעולה תחזיר 10.
כותרת הפעולה:
```java
public static int lastPosition(Queue<Integer> q, int num)
```
לדוגמה: עבור התור q הבא והמספר num=3 (מהראש לזנב):
`18, 3, 15, 13, 3, 12, 21, 12, 10, 3, 7`
הפעולה תחזיר 10.
כותרת הפעולה:
```java
public static int lastPosition(Queue<Integer> q, int num)
```
(ג)כתבו פעולה המקבלת מספר שלם וחיובי K ותור של מספרים שלמים, כל מספר בתור מופיע פעמיים בדיוק. הפעולה תבדוק אם קיים בתור זוג איברים זהים שמרחק ביניהם שווה ל-K. המרחק בין שני איברים בתור הוא כמות האיברים הנמצאים ביניהם.
לדוגמה: עבור התור הבא ו-K=4 הפעולה תחזיר true כי מרחק בין שני מספרים זהים (2 ו-2) הוא 4 (מהראש לזנב):
`4, 8, 2, 11, 4, 11, 1, 2, 8, 1`
כותרת הפעולה:
```java
public static boolean isDistanceK(Queue<Integer> q, int k)
```
לדוגמה: עבור התור הבא ו-K=4 הפעולה תחזיר true כי מרחק בין שני מספרים זהים (2 ו-2) הוא 4 (מהראש לזנב):
`4, 8, 2, 11, 4, 11, 1, 2, 8, 1`
כותרת הפעולה:
```java
public static boolean isDistanceK(Queue<Integer> q, int k)
```
(ד)מהי הסיבוכיות של הפעולות שכתבתם בסעיפים א'–ג'? הסבירו את תשובתכם.
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות