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

סעיף א

הפעולה first שלפניכם מקבלת הפניה ch לחוליה הראשונה של שרשרת החוליות של מספרים שלמים ומספר שלם x.

public static Node<Integer> first(Node<Integer> ch, int x){
    if(ch == null)
        return new Node<Integer>(x);
    ch.setNext(first(ch.getNext(),x));
    return ch;
}
  1. נתונה שרשרת החוליות: ch ->8➔7➔9➔15➔4 עקבו אחרי זימון הפעולה ch = first(ch, 3) ורשמו איך תיראה השרשרת אחרי ביצוע הפעולה.
  2. מה מבצעת הפעולה first באופן כללי?
סעיף ב

כתבו את הפעולה first בצורה הלא רקורסיבית.

סעיף ג

הפעולה second שלפניכם מקבלת הפניה לשורש של עץ בינארי ומספר שלם וחיובי k.

public static Node<Integer> second(BinNode<Integer> bt, int k){
    Node<Integer> list = third(bt, null, k);
    return list;
}
public static Node<Integer> third(BinNode<Integer> bt, Node<Integer> list, int k) {
    if(bt!=null)
    {
        if(k>0)
        {
            list = third(bt.getLeft(), list, k-1);
            list = third(bt.getRight(), list, k-1);
        }
        else
            list = first(list, bt.getValue());
    }
    return list;
}
  1. עקבו אחרי זימון הפעולה second(bt,3) ורשמו מה תחזיר הפעולה עבור העץ שלפניכם:

    ⚠️ עץ הדוגמה מוצג כתרשים גרפי ב-PDF ולא ניתן לשחזור משכבת הטקסט (לא נשמרו ערכי הצמתים). יש לעיין בעמוד המקורי (עמ' 10 C# / עמ' 20 Java) לפני מענה על סעיף זה.

  2. מה מבצעת הפעולה second באופן כללי?
שאלות ותגובות על השאלה

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

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

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