אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2024 · קיץ מועד ב · שאלה 5כל שאלות המבחן ←
מבנים לינאריים›רשימות מקושרות

נתונה הפעולה הבאה what, מה מבצעת הפעולה?

public static int what(Node<Integer> ch){
        int c = 0;
        while(ch != null)
        {
            c++;
            ch = ch.getNext();
        }
        return c;
    }
סעיף א

מה מבצעת הפעולה?

סעיף ב

נתונה הפעולה why המשתמשת בפעולה what, מה תחזיר הפעולה why(ch1, ch2), עבור שתי שרשרות החוליות הבאות: יש להראות מעקב אחרי ביצוע הפעולה why. אין צורך במעקב אחרי what.

public static boolean why(Node<Integer> ch1, Node<Integer> ch2) {
        int len1 = what(ch1);
        int len2 = what(ch2);
        for(int i = 0; i < len1-len2; i++)
        {
            ch1 = ch1.getNext();
        }
        while(ch1!=null)
        {
            if(ch1.getValue() != ch2.getValue())
                return false;
            ch1 = ch1.getNext();
            ch2 = ch2.getNext();
        }
        return true;
    }

ch1 → 10 → 7 → 14 → 5 → 7 → 2 → 4 → null

ch2 → 5 → 7 → 1 → 4 → null

סעיף ג

תנו דוגמה של שרשרת ch3 באורך ארבע חוליות, באופן שבו זימון הפעולה why(ch1, ch3) יחזיר ערך שונה מזה שהוחזר בסעיף ב'.

סעיף ד

תנו דוגמה של שרשרת ch4 באורך ארבע חוליות, באופן שבו זימון הפעולה why(ch4, ch1) יחזיר ערך true. אם אי אפשר ליצור שרשרת כזאת, הסבירו למה.

סעיף ה

מה מבצעות הפעולות why(ch1,ch2) ו- what(ch) באופן כללי?

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

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

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

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