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

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

public static int what(BinNode<Character> bt) {
    if (bt == null) return 0;
    return 1 + Math.max(what(bt.getLeft()),
                         what(bt.getRight()));
}

public static void printTree(BinNode<Character> 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++) {
        System.out.print(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.

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

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

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

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