נתונה הפעולה mystery. הפעולה מקבלת הפניה לשורש עץ בינרי של מספרים שלמים חיוביים bt.
נתונה הפעולה mystery. הפעולה מקבלת הפניה לשורש עץ בינרי של מספרים שלמים חיוביים bt.
public static void mystery(BinNode<Integer> bt)
{
mystery(bt, "");
}
private static void mystery(BinNode<Integer> bt, String st)
{
st = st + " " + bt.getValue();
if (bt.getLeft()==null && bt.getRight()==null)
{
System.out.println(st);
}
else
{
if (bt.getLeft() != null)
mystery (bt.getLeft(), st);
if (bt.getRight() != null)
mystery (bt.getRight(), st);
}
}
נתון העץ הבינרי bt1 הבא:
18
/ \
6 20
/ / \
1 17 13
\ /
3 1
(שורש=18; שמאל: 6→שמאל=1→ימין=3; ימין: 20→{שמאל=17→שמאל=1, ימין=13})
סעיף א
מה תהיה תוצאת זימון הפעולה mystery(bt1)?
יש להראות מעקב אחרי ביצוע הפעולה mystery.
סעיף ב
לפעולה mystery הועבר כפרמטר הפניה לשורש של עץ בינרי bt2.
הפלט שהתקבל לאחר זימון הפעולה mystery(bt2) היה בדיוק בסדר זה (משמאל לימין):
70 20 50 40 30
70 20 50 60
70 100 120
ציירו את העץ הבינרי bt2 שהועבר כפרמטר לפעולה.
סעיף ג
לפעולה mystery הועבר כפרמטר הפניה לשורש של עץ חיפוש בינרי bt3.
האם ייתכן שהפלט שהתקבל אחרי זימון הפעולה mystery(bt3) יהיה זהה לפלט שהתקבל אחרי הזימון mystery(bt2)? אם כן – ציירו עץ חיפוש בינרי bt3. אם הדבר בלתי אפשרי – הסבירו מדוע.
סעיף ד
מה מבצעת הפעולה mystery באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.