נתונה הפעולה הבאה:
public static void what(Queue<Integer> q)
{
int num1, num2;
boolean found;
Queue<Integer> temp1 = new Queue<Integer>();
Queue<Integer> temp2 = new Queue<Integer>();
while(!q.isEmpty())
{
num1 = q.remove();
found = false;
while(!q.isEmpty())
{
num2 = q.remove();
if(num1 == num2)
found = true;
temp1.insert(num2);
}
while(!temp1.isEmpty())
q.insert(temp1.remove());
if(!found)
temp2.insert(num1);
}
while(!temp2.isEmpty())
q.insert(temp2.remove());
}
(א)נתון תור q הבא (מהראש לזנב):
`5, 8, 2, 5, 5, 7, 3`
מה יהיה התוכן של התור q אחרי זימון הפעולה `what(q)` עבור התור q?
יש להראות מעקב אחרי ביצוע הפעולה.
`5, 8, 2, 5, 5, 7, 3`
מה יהיה התוכן של התור q אחרי זימון הפעולה `what(q)` עבור התור q?
יש להראות מעקב אחרי ביצוע הפעולה.
(ב)תנו דוגמה לתור q המכיל לפחות חמישה ערכים כך שתוכן התור לא ישתנה אחרי זימון הפעולה `what(q)`. אם לא ניתן ליצור תור כזה, יש להסביר מדוע.
(ג)תנו דוגמה לתור q המכיל לפחות חמישה ערכים כך שאחרי זימון הפעולה `what(q)` התור יהיה ריק. אם לא ניתן ליצור תור כזה, יש להסביר מדוע.
(ד)מה מבצעת הפעולה `what(q)` עבור תור של מספרים שלמים q?
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה בטיחות
שאלו כאן — ותקבלו מענה מוסמך.
רוצים לתרגל אלפי שאלות נוספות?
המשיכו לתרגול מלא עם משוב אישי ←מבחני מה"ט אמיתיים · משוב מיידי · וידאו לכל נושא · מעקב התקדמות