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

"תת-סדרה נגדית" היא רצף בתוך סדרת מספרים, המתחיל במספר כלשהו ומסתיים במספר הנגדי לו (שווה בערכו המוחלט, הפוך בסימנו). לדוגמה בסדרה 17, 3, 1, -4, 5, 6, 4, -3, 7, 23, -99 יש שתי תת-סדרות נגדיות: 3,1,-4,5,6,4,-3 ו--4,5,6,4. נתונה שרשרת חוליות lst עם מספרים חיוביים ושליליים שאינם 0, כולם שונים זה מזה. השרשרת שבדוגמאות: lst → -9 → -1 → 1 → 22 → 10 → -2 → 9 → -10 → 4 → null.

השרשרת lst שבדוגמאות:

השרשרת lst שבדוגמאות

lst → -9 → -1 → 1 → 22 → 10 → -2 → 9 → -10 → 4 → null
סעיף א

כתבו פעולה ששמה width בשפת Java או Width בשפת C# המקבלת את השרשרת lst ומספר שלם num (חיובי או שלילי) המופיע בשרשרת. הפעולה תחזיר את אורך ה"תת-סדרה נגדית" שהמספר num מתחיל או מסיים (האורך כולל את המספרים בקצוות). אם המספר הנגדי ל-num אינו מופיע בשרשרת, הפעולה תחזיר 1-. הערות: – חובה לשמור על השרשרת lst. – אין להשתמש בסעיף זה במערך. פתרון הכולל שימוש במערך לא יזוכה בנקודות. דוגמאות: עבור השרשרת lst שלפניכם: -9, -1, 1, 22, 10, -2, 9, -10, 4 עבור num = 9 הפעולה תחזיר 7 (התת-סדרה: -9, -1, 1, 22, 10, -2, 9). עבור num = -1 הפעולה תחזיר 2 (התת-סדרה: -1, 1). עבור num = 22 הפעולה תחזיר 1- (משום שהמספר הנגדי לו, 22-, אינו מופיע בשרשרת).

public static int Width (Node<int> lst, int num)

סעיף ב

כתבו פעולה ששמה longest בשפת Java או Longest בשפת C# המקבלת את השרשרת lst. הפעולה תחזיר את אורך ה"תת-סדרה נגדית" הגדולה ביותר. אם אין בשרשרת שום "תת-סדרה נגדית", הפעולה תחזיר 1-. אפשר להשתמש בפעולה שכתבתם בסעיף א. הערות: – בפעולה זו אין חובה לשמור על השרשרת lst. – אין להשתמש בסעיף זה במערך. פתרון הכולל שימוש במערך לא יזוכה בנקודות. לדוגמה: עבור השרשרת lst שבדוגמה לעיל הפעולה תחזיר 7. הסבר: ה"תת-סדרה נגדית" המתחילה במספר 9- ומסתיימת במספר 9 מכילה שבעה מספרים והיא הגדולה ביותר.

public static int Longest (Node<int> lst)

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

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

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

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