נתונה השרשרת הבאה (ch1, מהראש לסוף):
נתונה השרשרת הבאה (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 הבאה:
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
איך תיראה השרשרת לאחר ביצוע קטע הקוד הבא:
int s = zero(ch2);
for(int i = 1; i <= s/2; i++){
two(ch2, i, s - i + 1);
}
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.