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

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

שרשרת החוליות chain לפני הפעולה.

chain → 10 → 20 → 5 → 7 → 8 → 4 → 6 → 11 → 7

שרשרת החוליות chain אחרי הפעולה (נשארו רק הערכים הזוגיים, כי הראשון 10 זוגי).

chain → 10 → 20 → 8 → 4 → 6

השרשרת החדשה newChain שהוחזרה (הערכים האי-זוגיים שהוצאו, בסדרם היחסי המקורי).

newChain → 5 → 7 → 11 → 7
סעיף א

כתבו פעולה המקבלת הפניה לחוליה הראשונה של שרשרת חוליות של מספרים שלמים. הפעולה תפצל את השרשרת לשניים לפי הכלל הבא: אם ערך הראשון בשרשרת הוא זוגי, יש ליצור שרשרת חדשה רק מהערכים האי-זוגיים תוך מחיקתם מהשרשרת המקורית (בשרשרת המקורית יישארו רק ערכים הזוגיים); אם ערך הראשון בשרשרת הוא אי-זוגי, יש ליצור שרשרת חדשה רק מהערכים הזוגיים תוך מחיקתם מהשרשרת המקורית (בשרשרת המקורית יישארו רק ערכים האי-זוגיים). הפעולה תחזיר הפניה לחוליה הראשונה של השרשרת החדשה. כותרת הפעולה: public static Node<Integer> split(Node<Integer> chain)

סעיף ב

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

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

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

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

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