אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2023 · אביב מועד ב · שאלה 7כל שאלות המבחן ←
מבנים לינארייםמחסניות

מחסנית what(s) מרוקנת ומדפיסה מחסנית מהראש לתחתית. doWhat(t,val) מחפשת בעץ בינרי t צומת עם ערך val ומדפיסה, אם נמצא, את הנתיב מאותו צומת חזרה לשורש; העץ bt: שורש 1, שמאל 2 (שמאל 3, ימין 4 שממנו שמאל 5), ימין 6 (ימין 7).

public static void What(Stack<int> s)
{
   if (!s.IsEmpty())
    {
      Console.Write(s.Pop()+" ");
      What(s);
    }
}
public static void DoWhat(BinNode<int> t, int data)
 {
    Stack<int>s = new Stack<int>();
    DoWhat(t, s, data);
  }
private static void DoWhat(BinNode<int> t, Stack<int> 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 (מהאיור שבתחתית העמוד — נקרא מתמונת העמוד, לא מדליפת הספרות בטקסט הגולמי, ראו contentIssues)

        1
       / \
      2   6
     / \   \
    3   4   7
       /
      5
סעיף א

מה מבצעת הפעולה what(Stack<Integer> s) עבור מחסנית של מספרים שלמים s?

public static void What (Stack<int> s)

סעיף ב

עקבו אחרי זימון הפעולה doWhat(bt,3) עבור עץ bt שבאיור, וכתבו מה יהיה הפלט של הזימון.

סעיף ג

עקבו אחרי זימון הפעולה doWhat(bt,5) עבור עץ bt שבאיור, וכתבו מה יהיה הפלט של הזימון.

סעיף ד

מה יהיה פלט של זימון הפעולה doWhat(bt,10) עבור עץ bt שבאיור?

סעיף ה

מה מבצעת הפעולה doWhat(t, val) עבור עץ בינרי t ומספר שלם val, באופן כללי?

שאלות ותגובות על השאלה

🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות

שאלו כאן — ותקבלו מענה מוסמך.

🎓 מרצה לתכנות עונה כאן — תקבלו מענה מקצועי