נתונות הפעולות הבאות:
נתונות הפעולות הבאות:
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.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.