נתונות הפעולות what ו-doWhat. העץ bt: שורש 1, שמאל 2 (שמאל 3, ימין 4 שממנו שמאל 5), ימין 6 (ימין 7).
public static void what(Stack<Integer> s)
{
if (!s.isEmpty())
{
System.out.print(s.pop()+" ");
what(s);
}
}
public static void doWhat(BinNode<Integer> t, int data)
{
Stack<Integer>s = new Stack<Integer>();
doWhat(t, s, data);
}
private static void doWhat(BinNode<Integer> t, Stack<Integer> s, int val)
{
if (t!=null)
{
int x = t.getValue();
s.push(x);
if(x == val)
{
what(s);
}
else
{
doWhat(t.getLeft(), s, val);
if (!s.isEmpty())
doWhat(t.getRight(), s, val);
if (!s.isEmpty())
s.pop();
}
}
}
העץ הבינרי bt
1
/ \
2 6
/ \ \
3 4 7
/
5
סעיף א
מה מבצעת הפעולה what(Stack<Integer> s) עבור מחסנית של מספרים שלמים s?
public static void what (Stack<Integer> s)
סעיף ב
עקבו אחרי זימון הפעולה doWhat(bt,3) עבור עץ bt שבאיור, וכתבו מה יהיה הפלט של הזימון.
סעיף ג
עקבו אחרי זימון הפעולה doWhat(bt,5) עבור עץ bt שבאיור, וכתבו מה יהיה הפלט של הזימון.
סעיף ד
מה יהיה פלט של זימון הפעולה doWhat(bt,10) עבור עץ bt שבאיור?
סעיף ה
מה מבצעת הפעולה doWhat(t, val) עבור עץ בינרי t ומספר שלם val, באופן כללי?
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.