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

מחסנית what(s) מרוקנת ומדפיסה מחסנית מהראש לתחתית. doWhat(t,val) מחפשת בעץ בינרי t צומת עם ערך val ומדפיסה, אם נמצא, את הנתיב מאותו צומת חזרה לשורש; העץ 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 (מהאיור שבתחתית העמוד — נקרא מתמונת העמוד, לא מדליפת הספרות בטקסט הגולמי, ראו contentIssues)

        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, באופן כללי?

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

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

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

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