לפניכם פעולה רקורסיבית המקבלת הפנייה לשורש של עץ בינרי, ולפניכם שתי פעולות המקבלות הפנייה לשורש של עץ חיפוש בינרי (Binary Search Tree):
לפניכם פעולה רקורסיבית המקבלת הפנייה לשורש של עץ בינרי, ולפניכם שתי פעולות המקבלות הפנייה לשורש של עץ חיפוש בינרי (Binary Search Tree):
public static bool Special(BinNode<int> t)
{
return Special(t, 0);
}
private static bool Special(BinNode<int> t, int r)
{
if (t==null)
return true;
if (t.GetValue()<r)
return false;
return Special(t.GetLeft(), r+1) && Special(t.GetRight(), r+1);
}
public static int What(BinNode<int> bt)
{
if(bt.GetLeft() == null)
return bt.GetValue();
return What(bt.GetLeft());
}
public static int Where(BinNode<int> bt)
{
while(bt.GetRight()!=null)
{
bt = bt.GetRight();
}
return bt.GetValue();
}
סעיף א
לפניכם פעולה רקורסיבית המקבלת הפנייה לשורש של עץ בינרי (ראו קוד special לעיל). תנו דוגמה לעץ המכיל לפחות שישה איברים שעבורו תחזיר הפעולה special(t) את הערך true.
סעיף ב
מהי מטרת הפעולה special?
סעיף ג
נתונות שתי פעולות המקבלות הפנייה לשורש של עץ חיפוש בינרי (Binary Search Tree): what (קוד לעיל) ו-where (קוד לעיל). מהן מטרות הפעולות what ו-where?
סעיף ד
האם קיים עץ חיפוש בינרי bt הכולל לפחות שלושה צמתים שעבורו מתקיים: what(bt) = where(bt)? אם כן — ציירו את העץ, אם לא — הסבירו מדוע עץ כזה לא קיים.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.