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

נתונות הפעולות הבאות:

public static int What(BinNode<char> bt) {
    if (bt == null) return 0;
    return 1 + Math.Max(What(bt.GetLeft()),
                         What(bt.GetRight()));
}

public static void PrintTree(BinNode<char> bt) {
    if (bt == null) return;

    PrintTree(bt.GetLeft());

    int leftH = what(bt.GetLeft());
    int rightH = what(bt.GetRight());
    int count = leftH + rightH + 1;

    for (int i = 0; i < count; i++) {
        Console.Write(bt.GetValue());
    }

    PrintTree (bt.GetRight());
}

נתון עץ בינרי bt (⚠️ שוחזר מתרשים גרפי ב-PDF, מאומת מול התמונה):

  • שורש: A
  • A.שמאל = B, A.ימין = C
  • B.שמאל = D, B.ימין = E
  • C.שמאל = null, C.ימין = F
  • F.שמאל = G, F.ימין = null (כלומר D, E, G הם עלים)
סעיף א

מה תהיה תוצאת הזימון What(bt)?

סעיף ב

עבור הצומת B, כמה פעמים תודפס האות 'B'?

סעיף ג

מה תהיה תוצאת הזימון PrintTree(bt)? יש להראות מעקב אחרי זימון הפעולה.

סעיף ד

ציירו עץ בינרי שעבורו פלט של הפעולה PrintTree יהיה EDDCCCBBBBAAAAA.

שאלות ותגובות על השאלה

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

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

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