מבני נתונים ואלגוריתמים - מחברת קורס/מבני נתונים/מחסניות: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Atavory (שיחה | תרומות)
אין תקציר עריכה
Atavory (שיחה | תרומות)
אין תקציר עריכה
שורה 1:
{{מבני נתונים ואלגוריתמים - מחברת קורס/מבני נתונים}}
 
{{בעבודה}}
שורה 11:
{{הארה|1 =
#לפעמים קוראים למבנה זה LIFO, או "last in - first out".
#[[מבני נתונים ואלגוריתמים - מחברת קורס/#תורים|תורים]] עוסק בFIFO.
#ב[[מבני נתונים ואלגוריתמים - מחברת קורס/#ספר הקורס|ספר הקורס]], הפרק "Elementary Data Structures" מכסה נושא זה.
}}
 
שורה 46:
 
<source lang = "python">
1 Push(stk, 1)
2 Push(stk, 3)
3 Push(stk, 2)
 
# Prints 3
4 print Size(stk)
 
# Prints 2
5 Print Top(stk)
 
6 Pop(stk)
 
# Prints 2
7 print Size(stk)
 
# Prints 3
8 Print Top(stk)</source>
 
{{:מבני נתונים ואלגוריתמים - מחברת קורס/ADT}}
 
{{הגדרה|תוכן =
לעתים יש מבני נתונים שנתן לממש אותם בדרכים שונות. כדאי להבדיל בין הדברים הבאים:
*ממשק (interface) - '''מה''' המבנה עושה
*מימוש (implementation) - '''איך''' המבנה עושה זאת
 
אלה המושגים הנהוגים בהנדסת תכנה. בתחום מבני הנתונים והאלגוריתמים, לפעמים קוראים למבנה נתונים שרק הממשק שלו הוצג - ''ADT, או abstract data type.‏''
}}
 
{{הערה|1 =
למרבה הצער, אין ממשק מוסכם למחסנית. אנו השתמשנו בשמות הפעולות {{קוד בשורה|Push}},‏ {{קוד בשורה|Pop}},‏ ‏ ו{{קוד בשורה|Top}};‏ יש המשתמשים בשמות הפעולות {{קוד בשורה|Insert}},‏ {{קוד בשורה|Delete}},‏ ‏ ו{{קוד בשורה|Last}}; ‏ יש עוד ווריאציות. במהלך הקורס, אם תתקל בממשקים אחרים (לדוגמה במבחנים משנים קודמות), ייתכן שתיאלץ להפעיל מעט גמישות בהבנת הממשק.}}
{{קוד בשורה|Pop}},‏ ‏ ו{{קוד בשורה|Top}};‏ יש המשתמשים בשמות הפעולות
{{קוד בשורה|Insert}},‏ {{קוד בשורה|Delete}},‏ ‏ ו{{קוד בשורה|Last}}; ‏ יש עוד ווריאציות.
במהלך הקורס, אם תתקל בממשקים אחרים (לדוגמה במבחנים משנים קודמות), ייתכן שתיאלץ להפעיל מעט גמישות בהבנת הממשק.}}
 
==מימוש מערך==