לפניך המחלקה טבעת — Ring שלה שתי תכונות:
גודל הטבעת מטיפוס מחרוזת ("S" – טבעת קטנה, "L" – טבעת גדולה);
מספר שלם המייצג את צבע הטבעת.
public class Ring
{
private string size; // גודל הטבעת
private int color; // צבע הטבעת
public Ring()
{
this.size = "L";
this.color = 0;
}
public Ring(string str, int c)
{
this.size = str;
this.color = c;
}
public string GetSize()
{
return this.size;
}
public int GetColor()
{
return this.color;
}
}
לפניך ממשק המחלקה מוט — Pole.
| הפעולה | הסבר |
|---|---|
public Pole() | הפעולה הבונה מוט ריק. סיבוכיות זמן הריצה של הפעולה היא O(1) |
public void Add(Ring r) | פעולה המכניסה טבעת r לראש המוט. סיבוכיות זמן הריצה של הפעולה היא O(1) |
public Ring Remove() | פעולה המחזירה את הטבעת שבראש המוט. בנוסף, הפעולה מוציאה את הטבעת מראש המוט. סיבוכיות זמן הריצה של הפעולה היא O(1) |
public bool IsEmpty() | אם המוט ריק הפעולה מחזירה true, אחרת — היא מחזירה false. סיבוכיות זמן הריצה של הפעולה היא O(1) |
public void Sort() | פעולה המסדרת את הטבעות שעל המוט כך: הטבעות הגדולות "מונחות" בתחתית המוט והטבעות הקטנות מעליהן. |
סעיף א
ממש ב-C# את הפעולה Sort() שבמחלקה Pole, המסדרת את הטבעות כך שהגדולות "מונחות" בתחתית המוט והקטנות מעליהן. אתה יכול להשתמש בפעולות הנוספות של המחלקה Pole בלי לממש אותן. בתשובתך השתמש רק בפעולות המחלקות Pole ו-Ring.
public void Sort()
סעיף ב
מהי סיבוכיות זמן הריצה של הפעולה שמימשת בסעיף א? נמק את תשובתך.
שאלות ותגובות על השאלה
🎓 לא הבנתם משהו? קבלו הסבר נוסף ממרצה לתכנות
שאלו כאן — ותקבלו מענה מוסמך.