בשאלה זו אסור להשתמש במבנים נוספים כגון תור, מחסנית או מערך וגם אסור ליצור חוליות נוספות.
נתונה המחלקה CharList שלפניכם המייצגת רשימת תווים:
public class CharList
{
private Node<Character> head;
public CharList() {
this.head = null;
}
public CharList(Node<Character> chain) {
this.head = chain;
}
}
במחלקה CharList הוגדרה פעולה המקבלת הפניה לחוליה כלשהי chain ותו letter. הפעולה תחזיר את הפנייה לחוליה הראשונה הנמצאת אחרי chain ומכילה את התו letter. אם התו אינו מופיע ברשימה אחרי ה-chain, הפעולה תחזיר null. הפעולה מוכנה ואין צורך לממש אותה! כותרת הפעולה:
public Node<Character> firstAfterChain(Node<Character> chain, char letter)
⚠️ בעמוד המקורי סעיפי השאלה מסומנים א', ב', ד' (מדלגים על ג') — נשמר verbatim, אינו טעות תמלול.
(א)כתבו פעולה המקבלת תו letter. הפעולה תחזיר את הפנייה לחוליה האחרונה המכילה את התו letter. אם התו לא מופיע ברשימה, הפעולה תחזיר null. כותרת הפעולה:
```java
public Node<Character> last (char letter)
```
חובה להשתמש בפעולה firstAfterChain.
```java
public Node<Character> last (char letter)
```
חובה להשתמש בפעולה firstAfterChain.
(ב)כתבו פעולה המקבלת תו letter המופיע לפחות פעמיים במקומות כלשהם ברשימה, אך לא בתחילתה ולא בסופה.
הפעולה תחליף בין תת-השרשרת הנמצאת לפי המופע הראשון של letter לבין תת-השרשרת הנמצאת אחרי המופע האחרון של התו letter.
לדוגמה, עבור הרשימה שלפניכם והתו %:
`k ➔ a ➔ % ➔ b ➔ b ➔ % ➔ b ➔ % ➔ e ➔ r ➔ r`
אחרי זימון הפעולה הרשימה תיראה כך:
`e ➔ r ➔ r ➔ % ➔ b ➔ b ➔ % ➔ b ➔ % ➔ k ➔ a`
כותרת הפעולה:
```java
public void swap(char letter)
```
חובה להשתמש בפעולות firstAfterChain ו-last.
הפעולה תחליף בין תת-השרשרת הנמצאת לפי המופע הראשון של letter לבין תת-השרשרת הנמצאת אחרי המופע האחרון של התו letter.
לדוגמה, עבור הרשימה שלפניכם והתו %:
`k ➔ a ➔ % ➔ b ➔ b ➔ % ➔ b ➔ % ➔ e ➔ r ➔ r`
אחרי זימון הפעולה הרשימה תיראה כך:
`e ➔ r ➔ r ➔ % ➔ b ➔ b ➔ % ➔ b ➔ % ➔ k ➔ a`
כותרת הפעולה:
```java
public void swap(char letter)
```
חובה להשתמש בפעולות firstAfterChain ו-last.
(ג)מהי סיבוכיות זמן הריצה של הפעולה swap? הסבירו את תשובתכם.
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות