אתם מתרגלים שאלה מתוך בגרות מדעי המחשב — מבני נתונים (שאלון 899271)מבחן 2025 · קיץ מועד Special · שאלה 1כל שאלות המבחן ←
מבנים לינארייםרשימות מקושרות

נתונות שתי רשימות מקושרות של מספרים שלמים 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 בשפת Java או CreateUnion בשפת C#. הפעולה מקבלת את שתי הרשימות ומחזירה רשימה חדשה המכילה את כל המספרים המופיעים לפחות באחת מהרשימות. סדר המספרים ברשימה המוחזרת אינו חשוב וכל מספר מופיע פעם אחת בלבד. דוגמה: עבור זימון הפעולה עם הרשימות lst1, lst2 שלפניכם (ר' תמונה): תוחזר הרשימה הבאה (אין חשיבות לסדר המשתנים): lst3 = 5->2->4->3->7->null. הסבר: כל מספר שהופיע לפחות באחת הרשימות, מופיע ברשימה החדשה. כמו כן, ברשימה החדשה כל מספר מופיע פעם אחת בלבד (ללא כפילות).

public static Node<int> CreateUnion (Node<int> lst1, Node<int> lst2)

סעיף ב

כתבו פעולה חיצונית בשם intersection בשפת Java או Intersection בשפת C#. הפעולה מקבלת את שתי הרשימות ומחזירה רשימה חדשה המכילה רק את המספרים המופיעים גם ב-lst1 וגם ב-lst2. סדר המספרים ברשימה המוחזרת אינו חשוב וכל מספר חייב מופיע פעם אחת בלבד. אם אין אף מספר משותף, תוחזר רשימה ריקה. דוגמה: עבור זימון הפעולה עם הרשימות lst1, lst2 הנתונות בדוגמה לעיל (בסעיף א), תוחזר הרשימה הבאה: lst3 -> 4 -> null. הסבר: רק המספר 4 מופיע בשתי הרשימות.

public static Node<int> Intersection (Node<int> lst1, Node<int> lst2)

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

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

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

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