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

בעזרת המחלקה BinNode אפשר לממש שרשרת חוליות דו-כיוונית (getLeft = 'קודם', getRight = 'הבא'). מבקשים לסדר מחדש כך שהזוגיים יופיעו לפני האי-זוגיים, בלי מבנה נתונים נוסף ובלי לשנות את זהות החוליה הראשונה שהקורא מחזיק.

לפני הפעולה: chain -> 1 <-> 11 <-> 4 <-> 6 <-> 3 (null בשני הקצוות). אחרי הפעולה יכולה להיות: chain -> 6 <-> 4 <-> 11 <-> 1 <-> 3 (הזוגיים 6,4 בתחילת השרשרת, האי-זוגיים 11,1,3 בסופה; סדר האיברים בתוך כל קבוצה אינו חשוב).

לפני:  null <- 1 <-> 11 <-> 4 <-> 6 <-> 3 -> null   (chain מצביע על 1)
אחרי (יכולה להיות): null <- 6 <-> 4 <-> 11 <-> 1 <-> 3 -> null   (chain מצביע על 6)
סעיף א

כתבו פעולה המקבלת הפנייה לחוליה הראשונה (הכי שמאלית) של שרשרת חוליות דו-כיוונית ומסדרת אותה כך שכל הערכים הזוגיים יהיו בתחילת השרשרת וכל הערכים האי-זוגיים יהיו בסופה. סדר האיברים לא חשוב. שימו לב: אין להשתמש במבנה נתונים נוסף.

public static void Order(BinNode<int> chain)

סעיף ב

מהי סיבוכיות הפעולה order שכתבתם בסעיף א'? הסבירו את תשובתכם.

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

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

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

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