Java Programming רשימות מקושרות - המשך 01.06.2013 Introduction to C - Fall 2010 - Amir Menczel
המחלקה Node (תזכורת)
המחלקה List<T> המחלקה List עוטפת את הצומת הראשון ברשימה מהטיפוס Node<T> המחלקה מכילה שיטות הרלוונטיות לטיפול באיברים שברשימה:
המחלקה List<T> שיטה היוצרת איבר חדש עם הערך x ומוסיפה אותו אחרי האיבר במיקום pos:
המחלקה List<T> שיטה המוחקת איבר במיקום pos מהרשימה
תרגיל 1 הוסף שיטה למחלקה List המחפשת את אמצע הרשימה. הפונקציה מחזירה את הצומת הראשון של החצי השני של הרשימה. השלם את הקטעים החסרים.
תרגיל 1 - פיתרון
תרגיל 2 כתבו שיטה במחלקה List שהופכת את סדר איברי הרשימה. השיטה מחזירה את הצומת הראשון.
תרגיל 3 רשימות השיטה reduce שמקבלת רשימה משורשרת list של אובייקטים מטיפוס Item ומצמצמת את הרשימה כך שמכל רצף של אותו מספר נשאר רק מבנה אחד עם המספר עצמו ומספר המופעים (occur) של המספר ברצף.
תרגיל 3 רשימות השלימו את הקטעים החסרים:
פתרון תרגיל 3
תרגיל 4 הוסף שיטות למחלקה List.השיטה append מוסיפה איבר לסוף הרשימה. השיטה remove מוחקת איבר מהרשימה. הקריאות הבאות: ידפיסו:
תרגיל 4 - פתרון
תרגיל 4 - פתרון
תרגיל 5 - רשימה דו כיוונית רשימה מקושרת דו-כיוונית של איברים מוגדרת על פי המחלקות הבאות:
רשימה דו כיוונית השדה data מציין את ערך האיבר, השדה howManyAfter מציין כמה איברים קיימים ברשימה אחרי האיבר, השדה next מחזיק את האיבר הבא ברשימה והשדה prev מחזיק את האיבר הקודם ברשימה. השדה first מחזיק את האיבר הראשון ברשימה והשדה last מחזיק את השדה האחרון ברשימה. כתבו שתי שיטות האחת מוסיפה איבר לתחילת הרשימה, והשניה מוסיפה איבר לסוף הרשימה. השיטות מעדכנות את כל השדות הרלוונטיים בכל הרשימה.
תרגיל 5 - פתרון
תרגיל 5 - פתרון