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

פעולה what בונה מחסנית st מכל ערכי s (מהראש של s ועד סופה), ואז משווה, איבר-איבר מהראש של f, מול מה שנשלף (pop) מ-st — כלומר מול s בכיוון ההפוך (מסופה להתחלתה). כל עוד יש התאמה, מדפיסה ומתקדמת ב-f; בסיום מדפיסה STOP!.

public static void what(Node<Integer> f, Node<Integer> s)
{
  Stack<Integer> st = new Stack<Integer>();
  while(s!=null)
  {
    st.push(s.getValue());
    s = s.getNext();
  }
  while(f!=null && !st.isEmpty() && (st.pop()==f.getValue()))
  {
    System.out.print(f.getNext()+", ");
    f = f.getNext();
  }
  System.out.println("STOP!");
}

ארבע השרשראות a,b,c,d (מהראש לסוף) — פוענחו מתמונת עמוד 7 (java) / עמוד 19 (csharp) ברזולוציה 300-400dpi, כל ספרה אומתה.

a: 17 → -5 → 1 → 1 → 2 → 17 → -5 → 1
b: 1 → -5 → 17 → 2 → 5 → 6
c: 1 → -5 → 17 → 0 → 2 → 3 → 6
d: 17 → -5 → 1 → 1 → 2 → 8 → -5 → 1
סעיף א

עקבו אחרי זימון הפעולה what(a, b) ורשמו מה יהיה הפלט של הזימון. יש להציג את המעקב!

סעיף ב

עקב זימון הפעולה what התקבל הפלט (משמאל לימין): 1, -5, 17, STOP! אילו פרמטרים נשלחו לפעולה? יש לבחור זוג פרמטרים מתוך ארבע השרשרות הנתונות (a, b, c, d).

סעיף ג

מה מבצעת הפעולה באופן כללי?

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

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

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

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