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

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.

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

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

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

רוצים לתרגל אלפי שאלות נוספות?

המשיכו לתרגול מלא עם משוב אישי ←

מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות

המשיכו לתרגול מלא ←