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

לפניכם שלוש הפעולות הבאות: Secret, What, Something.

public static int Secret(Queue<int> q) {
    Queue<int> temp=new Queue<int>();
    while(!q.IsEmpty()){
        temp.Insert(q.Remove());
    }
    int c=0;
    while(!temp.IsEmpty()){
        c++;
        q.Insert(temp.Remove());
    }
    return c;
}
public static int What(Queue<int> q) {
    int len = Secret(q);
    int temp = q.Remove();
    q.Insert(temp);
    for(int i = 0; i < len; i++){
        int curr = q.Remove();
        q.Insert(curr);
        if(curr > temp)
            temp = curr;
    }
    return temp;
}
public static bool Something(Queue<int> q1, Queue<int> q2) {
    if(Secret(q1)==0)
        return false;
    int temp = What(q1);
    int len = Secret(q2);
    for(int i = 0; i < len; i++){
        int curr = q2.Remove();
        q2.Insert(curr);
        if(temp <= curr)
            return false;
    }
    return true;
}

נתונים שלושת התורים הבאים:

a: 3, 1, 5, 1
b: 2, 1, 3, 1
c: 4, 4, 4
סעיף א

עקבו אחרי זימון הפעולה Secret(a) ורשמו מה תהיה תוצאת הזימון.

סעיף ב

עקבו אחרי זימון הפעולה What(b) ורשמו מה תהיה תוצאת הזימון.

סעיף ג

עקבו אחרי זימון הפעולה Something(a, c) ורשמו מה תהיה תוצאת הזימון.

סעיף ד

האם קיימים שני תורים q1, q2 כך ש-Something(q1, q2) = Something(q2, q1)? הסבירו.

סעיף ה

מה מבצעות הפעולות Secret, What, Something?

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

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

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

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