נתונה המחלקה Item:
class Item
{
private int num;
private int bigNum;
public Item(int n, int b)
{
this.num = n;
this.bigNum = b;
}
…
}
עץ בינארי bt ומחסנית s לדוגמה.
עץ bt: 7
/ \
4 1
/ \
9 5
מחסנית s (מהראש לתחתית, סדר pop): 2, 10, 6
לאחר bigInTree(bt,s) — מחסנית תוצאה (מהראש לתחתית): Item(6,2), Item(10,0), Item(2,4)
(עבור 2: 4 צמתים גדולים מ-2 בעץ [7,4,9,5]; עבור 10: 0 צמתים; עבור 6: 2 צמתים גדולים מ-6 [7,9])
סעיף א
כתבו פעולה bigger המקבלת עץ בינארי t של מספרים שלמים ומספר שלם x ומחזירה את מספר הצמתים בעץ t שערכם גדולים מ-x.
public static int bigger(BinNode<Integer> t, int x)
סעיף ב
נתונה המחלקה Item (מופיעה בתחילת השאלה). כתבו פעולה bigInTree המקבלת עץ בינארי bt ומחסנית של מספרים שלמים s ומחזירה מחסנית שבה כל איבר הוא מטיפוס Item שמכיל ערך ממחסנית s ומספר האיברים הגדולים ממנו שנמצאים בעץ bt.
public static Stack<Item> bigInTree(BinNode<Integer> bt, Stack<Integer> s)
סעיף ג
מהי הסיבוכיות של זמן הריצה של הפעולה? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.