נתונות שתי רשימות מקושרות של מספרים שלמים lst1 ו-lst2. יש לכתוב שתי פעולות חיצוניות: createUnion שמחזירה רשימה חדשה עם כל הערכים שמופיעים בלפחות אחת הרשימות (ללא כפילויות), ו-intersection שמחזירה רשימה חדשה עם רק הערכים המשותפים לשתיהן (ללא כפילויות). בשני הסעיפים סדר הערכים ברשימה המוחזרת אינו חשוב.
דוגמה לרשימות lst1, lst2 שלפניכם
lst1: 5 -> 2 -> 2 -> 4 -> null
lst2: 3 -> 4 -> 7 -> null
lst3 = createUnion(lst1, lst2) - איחוד (ללא כפילויות, ללא חשיבות לסדר)
lst3: 5 -> 2 -> 4 -> 3 -> 7 -> null
lst3 = intersection(lst1, lst2) - חיתוך (ללא כפילויות)
lst3: 4 -> null
כתבו פעולה חיצונית בשם createUnion. הפעולה מקבלת את שתי הרשימות ומחזירה רשימה חדשה המכילה את כל המספרים המופיעים לפחות באחת מהרשימות. סדר המספרים ברשימה המוחזרת אינו חשוב וכל מספר מופיע פעם אחת בלבד. דוגמה: עבור זימון הפעולה עם הרשימות lst1, lst2 שלפניכם (ר' תמונה): תוחזר הרשימה הבאה (אין חשיבות לסדר המשתנים): lst3 = 5->2->4->3->7->null. הסבר: כל מספר שהופיע לפחות באחת הרשימות, מופיע ברשימה החדשה. כמו כן, ברשימה החדשה כל מספר מופיע פעם אחת בלבד (ללא כפילות).
public static Node<Integer> createUnion (Node<Integer> lst1, Node<Integer> lst2)
כתבו פעולה חיצונית בשם intersection. הפעולה מקבלת את שתי הרשימות ומחזירה רשימה חדשה המכילה רק את המספרים המופיעים גם ב-lst1 וגם ב-lst2. סדר המספרים ברשימה המוחזרת אינו חשוב וכל מספר חייב מופיע פעם אחת בלבד. אם אין אף מספר משותף, תוחזר רשימה ריקה. דוגמה: עבור זימון הפעולה עם הרשימות lst1, lst2 הנתונות בדוגמה לעיל (בסעיף א), תוחזר הרשימה הבאה: lst3 -> 4 -> null. הסבר: רק המספר 4 מופיע בשתי הרשימות.
public static Node<Integer> intersection (Node<Integer> lst1, Node<Integer> lst2)
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.