אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2025 · אביב מועד א · שאלה 12כל שאלות המבחן ←
מבנים לינארייםרשימות מקושרות

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

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

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

public static int Zero(Node<int> ch){
    if(ch == null) return 0;
    return 1 + Zero(ch.GetNext());
}
public static Node<int> One(Node<int> ch, int n){
    if(ch == null) return null;
    if(n == 1) return ch;
    return One(ch.GetNext(), n-1);
}
סעיף א

מה יהיה הפלט של הפקודה הבאה?

Console.WriteLine(Zero(ch1));

מה מבצעת הפעולה Zero?

סעיף ב

מה יהיה הפלט של הפקודה הבאה?

Console.WriteLine(One(ch1, 3));

מה מבצעת הפעולה One עבור ערך n שלם? יש להתייחס לאפשרויות שונות.

סעיף ג

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

public static void Two(Node<int> ch, int n, int m){
    if(n < m)
    {
        Node<int> p1 = One(ch, n);
        Node<int> 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);
}
שאלות ותגובות על השאלה

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

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

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