הגדרה: תור מחרוזות "תקין" הוא תור שבו כל המחרוזות המתחילות באותה האות נמצאות רק בתחילת התור.
הגדרה: תור מחרוזות "תקין" הוא תור שבו כל המחרוזות המתחילות באותה האות נמצאות רק בתחילת התור.
לדוגמה, התור שלפניכם הוא "תור תקין": Cure, Cube, Cab, Crowd, Apple, Banana, Dog. גם התור הזה הוא "תור תקין": Cure, Cube, Cab, Crowd. אבל התור הזה אינו "תור תקין": Cure, Cube, Cab, Crowd, Apple, Cat, Dog.
exampleQueues: [[Cure, Cube, Cab, Crowd, Apple, Banana, Dog], [Cure, Cube, Cab, Crowd], [Cure, Cube, Cab, Crowd, Apple, Cat, Dog]]
public static void addToProperQueue(Queue<String> q, String s)
כתבו פעולה המקבלת תור של מחרוזות "תקין" q ומחרוזת s. הפעולה תוסיף את המחרוזת לתור כך שהוא יישאר תקין.
public static boolean isProperQueue(Queue<String> q)
כתבו פעולה המקבלת תור של מחרוזות. הפעולה תבדוק אם התור הוא "תור תקין". אם כן – הפעולה תחזיר ערך true, ואם לא – הפעולה תחזיר ערך false.
public static void fixIt(Queue<String> q)
כתבו פעולה המקבלת תור של מחרוזות. הפעולה תבדוק אם התור הוא "תור תקין" ואם לא, הפעולה תשנה את סדר המחרוזות בתור כך שהוא יהיה "תקין".
מהי סיבוכיות הפעולות שכתבתם בסעיפים א'-ג'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.