אז מה למדנו השבוע?
רשימות, רקורסיה ולקראת מבחן אחד...
י"ח טבת, תשע"ד. 21.12.2013
שלום לכולכם,
- המשכנו לפתור תרגילים בנושא רשימות - שאלת המלבנים במבחן של שמוליק והפתרון היפה שהצעתם לסעיף ד' כולל מציאת מינימום ברשימה.
- פתרנו ברקורסיה פעולה להיפוך רשימה - reverse (שטובה תמיד כשמדברים גם על פלינדרומים). אני רוצה להציע לכם פתרון אחר מזה שעשינו בכתה שהופך את הרשימה עצמה כפי שרצינו בהתחלה.
public static void reverse(List<Integer> l, Node<Integer> pos)
{
if (pos!=null)
{
l.insert(null, pos.getInfo());
pos= l.remove(pos);
reverse(l,pos);
}
}
העיצוב בפלייר הזה מוגבל ולכן כדי להבין כדאי להעביר למסמך וורד או להריץ.
סדר גודל הריצה של הפעולה הזו הוא N בריבוע. נסו להסביר לעצמכם למה?
ומי שרוצה ממש "לצאת מהקופסה" שינסה לפתור פעולת reverse של רשימה בסדר גודל של N.
המבחן כמעט גמור ואני רוצה לחזור על המבנה שלו:
- לבחור 2 שאלות מתוך 3 - בנושא רשימות, מחסניות, תורים.
- לבחור שאלה אחת מתוך 2 - בנושא רקורסיה. (אחת כתוב והשניה קרוא)
- שאלת חובה בנושא אוטומטים - אס"ד.
מחר נמשיך ונפתור תרגילים ברקורסיה ואתם מוזמנים להביא שאלות שלא הצלחתם לפתור לשיעור.
אחרי השיעור יתקיים תגבור למי שרוצה.
שיהיה שבוע טוב,
זהבית.