נתונה המחלקה User – משתמש ברשת חברתית, ולה שלוש תכונות: name – שם המשתמש מטיפוס מחרוזת (ייתכנו כמה אנשים שלהם אותו השם) id – מספר זהות מטיפוס שלם (מספר ייחודי) friends – מערך מטיפוס שלם, ובו מספרי הזהות של החברים של המשתמש (כל מספר מופיע פעם אחת בלבד). גודל המערך הוא בהתאם לכמות החברים של המשתמש. הניחו שקיימות פעולות get/Get לתכונות המחלקה.
כתבו במחלקה User פעולה פנימית ששמה mutual בשפת Java או Mutual בשפת C#, המקבלת משתמש (User) אחר – other. הפעולה מחזירה את כמות החברים המשותפים של שני המשתמשים.
נתונה המחלקה SocialNetwork – רשת חברתית, ולה תכונה אחת:
users – מערך מטיפוס User
המעך אינו ממוין לפי סדר כלשהו, כל משתמש מופיע בו פעם אחת בלבד, ואין בו ערכי null .
כתבו במחלקה SocialNetwork פעולה פנימית ששמה exactOne בשפת Java או ExactOne בשפת C#, המקבלת משתמש (User) – other, שאינו מופיע במערך. הפעולה מחזירה true אם קיים במערך משתמש אחד לפחות שלו ול other יש בדיוק חבר אחד משותף. אחרת הפעולה מחזירה false .
הערה: אפשר להיעזר בפעולה שכתבתם בסעיף א.
נתונה המחלקה User – משתמש ברשת חברתית, ולה שלוש תכונות: name – שם המשתמש מטיפוס מחרוזת (ייתכנו כמה אנשים שלהם אותו השם) id – מספר זהות מטיפוס שלם (מספר ייחודי) friends – מערך מטיפוס שלם, ובו מספרי הזהות של החברים של המשתמש (כל מספר מופיע פעם אחת בלבד). גודל המערך הוא בהתאם לכמות החברים של המשתמש. הניחו שקיימות פעולות get/Get לתכונות המחלקה.
כתבו במחלקה User פעולה פנימית ששמה mutual בשפת Java או Mutual בשפת C#, המקבלת משתמש (User) אחר – other. הפעולה מחזירה את כמות החברים המשותפים של שני המשתמשים.
נתונה המחלקה SocialNetwork – רשת חברתית, ולה תכונה אחת:
users – מערך מטיפוס User
המעך אינו ממוין לפי סדר כלשהו, כל משתמש מופיע בו פעם אחת בלבד, ואין בו ערכי null .
כתבו במחלקה SocialNetwork פעולה פנימית ששמה exactOne בשפת Java או ExactOne בשפת C#, המקבלת משתמש (User) – other, שאינו מופיע במערך. הפעולה מחזירה true אם קיים במערך משתמש אחד לפחות שלו ול other יש בדיוק חבר אחד משותף. אחרת הפעולה מחזירה false .
הערה: אפשר להיעזר בפעולה שכתבתם בסעיף א.