(א)כתבו פעולה המקבלת שתי הפניות לחוליות שונות בשרשרת חוליות של מספרים שלמים. הפעולה תחזיר את סכום ערכי החוליות הנמצאות בין ההפניות שהתקבלו.
לדוגמה: עבור השרשרת שלפניכם (`10, 14, 6, 4, 10, 3, 14, 14` (מהראש לסוף); p1 מצביע על החוליה השלישית (ערך 6), p2 מצביע על החוליה השישית (ערך 3)) הפעולה תחזיר 23.
כותרת הפעולה:
```csharp
public static int GetSum(Node<int> p1, Node<int> p2)
```
אפשר להניח ש-p1 מצביע על חוליה שנמצאת לפני החוליה ש-p2 מצביע עליה.
לדוגמה: עבור השרשרת שלפניכם (`10, 14, 6, 4, 10, 3, 14, 14` (מהראש לסוף); p1 מצביע על החוליה השלישית (ערך 6), p2 מצביע על החוליה השישית (ערך 3)) הפעולה תחזיר 23.
כותרת הפעולה:
```csharp
public static int GetSum(Node<int> p1, Node<int> p2)
```
אפשר להניח ש-p1 מצביע על חוליה שנמצאת לפני החוליה ש-p2 מצביע עליה.
(ב)כתבו פעולה המקבלת הפניה לחוליה הראשונה של שרשרת חוליות של מספרים שלמים חיוביים ומספר שלם חיובי num. הפעולה תבדוק אם קיים רצף חוליות שסכום הערכים שלהן שווה ל-num. אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.
כותרת הפעולה:
```csharp
public static bool IsAmount(Node<int> ch, int num)
```
לדוגמה: עבור השרשרת הבאה (ch, מהראש לסוף): `10, 14, 6, 4, 10, 3, 14, 14`
עבור num=23 או num=37 הפעולה תחזיר true, עבור num=26 או num=19 הפעולה תחזיר false.
כותרת הפעולה:
```csharp
public static bool IsAmount(Node<int> ch, int num)
```
לדוגמה: עבור השרשרת הבאה (ch, מהראש לסוף): `10, 14, 6, 4, 10, 3, 14, 14`
עבור num=23 או num=37 הפעולה תחזיר true, עבור num=26 או num=19 הפעולה תחזיר false.
(ג)מהי הסיבוכיות של הפעולות שכתבתם בסעיפים א'–ב'? הסבירו את תשובתכם.
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות