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

"תור מספר" הוא תור (המיוצג כשרשרת חוליות מטיפוס Node<int>) של ספרות בין 1 ל-9 (כולל), המייצג מספר שלם -- החולייה הראשונה (ראש התור) היא ספרת האחדות, השנייה ספרת העשרות וכן הלאה (למשל התור 6,9,1 מייצג את 196). הנח שמספר הספרות האפשרי בתור לא חורג ממה שטיפוס int יכול להכיל. המחלקה הגנרית Node T (עם GetValue/SetValue/GetNext/SetNext) אינה מודפסת מחדש בעמוד זה של השאלון -- היא המחלקה הסטנדרטית של הקורס לשרשראות חוליות, הזהה לזו שמופיעה מפורשות בשאלות שרשרת-חוליות אחרות באותה סדרת בחינות (למשל 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, המקבלת "תור מספר" q, ומחזירה את המספר המיוצג בתור. הערה: אין חובה לשמור על מבנה התור.

public static int ToNumber (Node<int> q)

סעיף ב

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

public static int BigNumber (Node<Node<int>> lst)

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

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

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

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