נתונה המחלקה NumCount - מספר ערכים, ולה שתי תכונות:
num - ערך מספרי, מטיפוס שלם.count - מספר המופעים של הערך (num), מטיפוס שלם. המספר גדול או שווה ל־ 0.
הניחו שקיימות פעולות set/Set get/Get לכל אחת מן התכונות במחלקה, ופעולה בונה המקבלת ערכים עבור תכונות המחלקה.נתונה המחלקה OrderedList - שרשרת ממוינת, ולה תכונה אחת:
lst - מצביע על ראש של שרשרת חוליות מטיפוס NumCount.
שרשרת החוליות ממוינת לפי סדר עולה של ערך התכונה - num.
ערך התכונה num שונה בכל חוליה.דוגמה: השרשרת שלפניכם מקיימת את תנאי המחלקה:
lst -> [num: 3, count: 9] -> [num: 5, count: 1] -> [num: 8, count: 2] -> null
public void insertNum (int x)public void InsertNum (int x)public int valueN (int n)public int ValueN (int n)ממשו במחלקה OrderedList את הפעולה הפנימית insertNum / InsertNum.
הפעולה מוסיפה את הערך של x לשרשרת באופן שלפניכם:
num שלה שווה ל־x, הפעולה תגדיל ב־ 1 את התכונה count (כמות המופעים) באותה החוליה.num שלה שווה ל־x, הפעולה תכניס חוליה חדשה, שבה התכונה num תהיה שווה ל-x והתכונה count תהיה שווה ל־1, במיקום השומר את הסדר העולה של השרשרת.מהי סיבוכיות זמן הריצה של הפעולה שכתבתם בסעיף א(1)? נמקו את תשובתכם.
"ערך המופע ה־ n" הוא הערך שמופיע בַּמָקום ה־ n לפי הסדר מתחילת השרשרת (בשקלול כמות המופעים - count של כל ערך).
ממשו במחלקה OrderedList את הפעולה הפנימית valueN / ValueN המקבלת את המספר n, ומחזירה את "ערך המופע ה־ n".
הניחו ש"ערך המופע ה־ n" קיים בשרשרת.
דוגמה: עבור השרשרת: [3, 4] -> [5, 1] -> [8, 3] -> [10, 1] ו-n=7, הפעולה תחזיר 8. (הסדר: 3,3,3,3,5,8,8,8,10. במקום השביעי 8).
נתונה המחלקה NumCount - מספר ערכים, ולה שתי תכונות:
num - ערך מספרי, מטיפוס שלם.count - מספר המופעים של הערך (num), מטיפוס שלם. המספר גדול או שווה ל־ 0.
הניחו שקיימות פעולות set/Set get/Get לכל אחת מן התכונות במחלקה, ופעולה בונה המקבלת ערכים עבור תכונות המחלקה.נתונה המחלקה OrderedList - שרשרת ממוינת, ולה תכונה אחת:
lst - מצביע על ראש של שרשרת חוליות מטיפוס NumCount.
שרשרת החוליות ממוינת לפי סדר עולה של ערך התכונה - num.
ערך התכונה num שונה בכל חוליה.דוגמה: השרשרת שלפניכם מקיימת את תנאי המחלקה:
lst -> [num: 3, count: 9] -> [num: 5, count: 1] -> [num: 8, count: 2] -> null
public void insertNum (int x)public void InsertNum (int x)public int valueN (int n)public int ValueN (int n)ממשו במחלקה OrderedList את הפעולה הפנימית insertNum / InsertNum.
הפעולה מוסיפה את הערך של x לשרשרת באופן שלפניכם:
num שלה שווה ל־x, הפעולה תגדיל ב־ 1 את התכונה count (כמות המופעים) באותה החוליה.num שלה שווה ל־x, הפעולה תכניס חוליה חדשה, שבה התכונה num תהיה שווה ל-x והתכונה count תהיה שווה ל־1, במיקום השומר את הסדר העולה של השרשרת.מהי סיבוכיות זמן הריצה של הפעולה שכתבתם בסעיף א(1)? נמקו את תשובתכם.
"ערך המופע ה־ n" הוא הערך שמופיע בַּמָקום ה־ n לפי הסדר מתחילת השרשרת (בשקלול כמות המופעים - count של כל ערך).
ממשו במחלקה OrderedList את הפעולה הפנימית valueN / ValueN המקבלת את המספר n, ומחזירה את "ערך המופע ה־ n".
הניחו ש"ערך המופע ה־ n" קיים בשרשרת.
דוגמה: עבור השרשרת: [3, 4] -> [5, 1] -> [8, 3] -> [10, 1] ו-n=7, הפעולה תחזיר 8. (הסדר: 3,3,3,3,5,8,8,8,10. במקום השביעי 8).