סעיף א
כתבו פעולה המקבלת הפניה לחוליה הראשונה בשרשרת חוליות של מספרים שלמים ומספר שלם חיובי pos. הפעולה תחזיר איבר שנמצא במקום pos בשרשרת. אם אין מקום pos בשרשרת, הפעולה תחזיר ערך (-1). יש להניח כי המיקום נספר החל מ-1, כאשר pos = 1 מתייחס לחוליה הראשונה.
public static int valueAt(Node<Integer> ch, int pos)
סעיף ב
כתבו פעולה המקבלת שתי הפניות לחוליות הראשונות של שתי שרשראות של מספרים שלמים ch1 ו – ch2. הפעולה תיצור שרשרת חדשה לפי הכלל הבא:
- ראשית מכניסים את האיבר הראשון מהשרשרת ch1, ואחריו – את האיבר האחרון מהשרשרת ch2;
- מכניסים את האיבר השני מהשרשרת ch1, ואחריו את האיבר שלפני האחרון מהשרשרת ch2;
- וכך הלאה.
הפעולה תחזיר הפניה לחוליה הראשונה של השרשרת החדשה. אפשר להניח שאורכן של שתי השרשראות שווה. כותרת הפעולה:
public static Node<Integer> merge (Node<Integer>ch1, Node<Integer>ch2)
סעיף ג
מהן הסיבוכיות של הפעולות שכתבתם בסעיפים א' ו-ב'? הסבירו את תשובתכם.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.