נתונה השרשרת הבאה (ch1, מהראש לסוף):

10, 12, 5, 3, 6, 1, 4

נתונות שתי הפעולות הרקורסיביות הבאות:

public static int zero(Node<Integer> ch){
    if(ch == null) return 0;
    return 1 + zero(ch.getNext());
}
public static Node<Integer> one(Node<Integer> ch, int n){
    if(ch == null) return null;
    if(n == 1) return ch;
    return one(ch.getNext(), n-1);
}
(א)מה יהיה הפלט של הפקודה הבאה?
```
System.out.println(zero(ch1));
```
מה מבצעת הפעולה zero?
(ב)מה יהיה הפלט של הפקודה הבאה?
```
System.out.println(one(ch1, 3));
```
מה מבצעת הפעולה one עבור ערך n שלם? יש להתייחס לאפשרויות שונות.
(ג)נתונה הפעולה הרקורסיבית two הבאה:

```java
public static void two(Node<Integer> ch, int n, int m){
if(n < m)
{
Node<Integer> p1 = one(ch, n);
Node<Integer> p2 = one(ch, m);
int temp = p1.getValue();
p1.setValue(p2.getValue());
p2.setValue(temp);
two(ch, n+1, m-1);
}
}
```

עקבו אחרי זימון הפעולה `two(ch1, 2, 6)` ורשמו איך תיראה השרשרת אחרי ביצוע הפעולה?
יש להראות מעקב אחרי ביצוע הפעולה.
(ד)מה מבצעת הפעולה באופן כללי?
(ה)נתונה השרשרת הבאה (ch2, מהראש לסוף):
`1, 2, 3, 4, 5, 6, 7, 8, 9, 10`

איך תיראה השרשרת לאחר ביצוע קטע הקוד הבא:

```java
int s = zero(ch2);
for(int i = 1; i <= s/2; i++){
two(ch2, i, s - i + 1);
}
```

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה בטיחות מוסמך עונה כאן — תקבלו מענה מקצועי

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←