מחסנית
ראשית נגדיר מושג שישמש אותנו לבניית תמונת הזכרון:
מחסנית (stack) היא דרך לסדר רשימת איברים מסוג כלשהו בפורמט LIFO, או last in first out.
מה הכוונה?
-
האיברים יכולים להיות כל דבר - מספרים, תווים, דמויות וכו׳. בקורס נדבר בעיקר על מחסניות של זכרון.
-
כאשר איבר נכנס למחסנית, הוא נכנס מעל כל שאר האיברים שכבר במחסנית.
-
כאשר מוציאים איבר מהמחסנית, האיבר האחרון שנכנס הוא זה שלמעלה, ולכן הוא זה שיצא - מכאן מגיע המונח LIFO.
-
דוגמאות אמיתיות למחסניות:
- מחסנית רובה - כאשר דוחפים כדורים למחסנית, כל כדור חודש עולה מעל כל האיברים שכבר נמצאים בה. כשמוציאים כדור, הראשון שיוצא הוא האחרון שנכנס.
- ערימת צלחות - כאשר עורמים צלחות, כל צלחת שנכנסת לערימה עולה מעל כל שאר הצלחות שכבר בערימה. כאשר שולפים צלחת ניתן לשלוף מהחלק העליון ביותר.
נגדיר שתי פעולות שאפשר לבצע על מחסנית:
- push - דחיפת איבר לתוך המחסנית, מעל כל שאר האיברים.
- pop - הוצאת האיבר העליון של המחסנית. אפשר לבצע pop רק אם המחסנית אינה ריקה.
לדוגמא:
נניח שדחפנו את המספרים 1, 2 ו-3 לפי הסדר למחסנית. אם נכניס את 4, הוא יעלה מעל 3 - אם נוציא איבר, נוכל לשלוף את 3 בלבד ורק לאחר מכן את 2.
Note
מחסנית היא דוגמא לקונספט הנקרא מבנה נתונים, אובייקט חשוב מאוד אותו מנתחים בהרחבה בקורסי המשך.