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

"תור מספר" הוא תור (המיוצג כשרשרת חוליות מטיפוס Node<Integer>) של ספרות בין 1 ל-9 (כולל), המייצג מספר שלם -- החולייה הראשונה (ראש התור) היא ספרת האחדות, השנייה ספרת העשרות וכן הלאה (למשל התור [6,9,1] מייצג את 196). הנח שמספר הספרות האפשרי בתור לא חורג ממה שטיפוס int יכול להכיל. המחלקה הגנרית Node<T> (עם getValue/setValue/getNext/setNext, ובC# Get/Set-PascalCase) אינה מודפסת מחדש בעמוד זה של השאלון -- היא המחלקה הסטנדרטית של הקורס לשרשראות חוליות, הזהה לזו שמופיעה מפורשות בשאלות שרשרת-חוליות אחרות באותה סדרת בחינות (למשל 899381/2022 שאלה 4).

public class Node<T> {
    private T value;
    private Node<T> next;
    public Node(T value) { this.value = value; this.next = null; }
    public T getValue() { return value; }
    public void setValue(T value) { this.value = value; }
    public Node<T> getNext() { return next; }
    public void setNext(Node<T> next) { this.next = next; }
}

תור-מספר בודד המייצג את 196: ראש התור (יחידות)=6, לאחריו 9 (עשרות), 1 (מאות)

q -> [6] -> [9] -> [1] -> null   (ראש=יחידות)

שרשרת של ארבעה תורי-מספר, המייצגים (בהתאמה) את 62, 427, 82, 691

lst -> [q:2,6] -> [q:7,2,4] -> [q:2,8] -> [q:1,9,6] -> null
סעיף א

כתוב פעולה בשם toNumber (ב-C#: ToNumber), המקבלת "תור מספר" q, ומחזירה את המספר המיוצג בתור. הערה: אין חובה לשמור על מבנה התור.

public static int toNumber (Node<Integer> q)

סעיף ב

נתונה שרשרת חוליות ובה כל חולייה מכילה "תור מספר" (כהגדרתו בסעיף א). כתוב פעולה בשם bigNumber (ב-C#: BigNumber), המקבלת הפניה lst לשרשרת החוליות, ומחזירה את המספר הגדול ביותר מבין המספרים המיוצגים בשרשרת החוליות. חובה להשתמש בפעולה שהוגדרה בסעיף א.

public static int bigNumber (Node<Node<Integer>> lst)

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

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

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

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