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