שלושה תרגילים על Queue<Integer> ועל "שרשרת תורים" — שרשרת חוליות מסוג Node<Queue<Integer>>, כלומר הערך של כל חוליה הוא הפניה לתור של מספרים שלמים.
שלושה תרגילים על Queue<Integer> ועל "שרשרת תורים" — שרשרת חוליות מסוג Node<Queue<Integer>>, כלומר הערך של כל חוליה הוא הפניה לתור של מספרים שלמים.
דוגמה לשרשרת תורים (200dpi crop, עמ' 10): lst -> חוליה1(תור=[1,4,2], ראש=1) -> חוליה2(תור=[10,7,1,3], ראש=10) -> חוליה3(תור=[9,1,8], ראש=9). התור החדש שהפעולה בסעיף ג' מחזירה: [7, 3, 18] — 7=1+4+2 (ראש 1 אי-זוגי, לכן סכום), 3=הערך האחרון בתור [10,7,1,3] (ראש 10 זוגי, לכן ערך אחרון), 18=9+1+8 (ראש 9 אי-זוגי, לכן סכום).
lst -> [Queue: 1,4,2] -> [Queue: 10,7,1,3] -> [Queue: 9,1,8] -> null
תוצאה: תור חדש [7, 3, 18]
כתבו פעולה המקבלת תור של מספרים שלמים ומחזירה סכום איברים שנמצאים בתור. כותרת הפעולה: public static int sumQueue(Queue<Integer> q) (C#: public static int SumQueue(Queue<int> q))
כתבו פעולה המקבלת תור של מספרים שלמים ומחזירה את הערך של המספר האחרון שנמצא בתור (את הערך הנמצא בסוף התור). כותרת הפעולה: public static int lastValue(Queue<Integer> q) (C#: public static int LastValue(Queue<int> q))
שרשרת תורים היא שרשרת חוליות מסוג Node<Queue<Integer>>, כלומר הערך (value) של כל חוליה הוא הפניה לתור של מספרים שלמים. כתבו פעולה המקבלת הפניה לחוליה ראשונה של שרשרת תורים. הפעולה תחזיר תור של מספרים שלמים באופן הבא: עבור כל תור שנמצא בשרשרת תורים שהערך הנמצא בראשו הוא אי-זוגי, יוכנס לתור החדש ערך השווה לסכום האיברים בתור, ואילו עבור כל תור שהערך הנמצא בראשו הוא זוגי, הפעולה תכניס לתור החדש את הערך הנמצא בסוף התור.
public static Queue<int> ProcessQueueChain(Node<Queue<int>> lst)
מהי סיבוכיות זמן הריצה של הפעולה שכתבתם בסעיף ג'? הסבירו את תשובתכם!
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.