אתם מתרגלים שאלה מתוך מה"ט מבני נתונים ותכנות מונחה עצמים — הנדסאי תוכנהמבחן 2022 · אביב מועד א · שאלה 7כל שאלות המבחן ←
מבנים לינארייםמחסניות

טיפוס נתונים חדש TStack (תלת-מחסנית) המכיל שלוש מחסניות S0,S1,S2 של מספרים שלמים, עם שלוש פעולות מוגדרות: move(from,to) (מעבר חוקי רק 0->1, 1->2, 2->0), bigOrEqual(from,toCompare), isEmpty(stackId).

סעיף א

נתונה תלת-מחסנית, שבה מחסנית מספר 0 מכילה מספרים שלמים לא ממוינים, ושתי מחסניות אחרות ריקות. כתבו פעולה void maximum(), המעבירה את האיבר הגדול ביותר ממחסנית S0 לראש המחסנית S1. הערה: יש להשתמש רק בשלוש הפעולות המוגדרות במחלקה TStack! אסור להשתמש במחלקה Stack או כל מבנה אחר.

public void maximum()

סעיף ב

נתונה תלת-מחסנית, שבה בכל המחסניות נמצאים מספרים שלמים לא ממוינים. כתבו פעולה void sort(), המשנה את סדר האיברים בתלת-מחסנית, כך שבאחת מהמחסניות האיברים יהיו ממוינים בסדר עולה (האיבר הגדול ביותר נמצא בתחתית המחסנית) ושתי מחסניות האחרות תהיינה ריקות. הערה: יש להשתמש רק בשלוש הפעולות המוגדרות במחלקה TStack ובפעולה maximum()! אסור להשתמש במחלקה Stack או בכל מבנה אחר.

public void sort()

סעיף ג

מהי סיבוכיות זמן הריצה של האלגוריתם בסעיף ב', בהנחה שבתלת-מחסנית יש N איברים? סיבוכיות כל הפעולות move, bigOrEqual, isEmpty היא O(1). הסבירו את תשובתכם.

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

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

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

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