שיעור 11: מחסניות ותורים
נתחיל מהמטבח: דמיין/י ערימת צלחות — מניחים למעלה ולוקחים מלמעלה, האחרונה שנכנסה יוצאת ראשונה. זו 'מחסנית' (stack), LIFO. עכשיו דמיין/י תור בקופה: מי שהגיע ראשון מקבל שירות ראשון — זה 'תור' (queue), FIFO. בפייתון מחסנית היא list עם append/pop, ותור עדיף כ-collections.deque עם append/popleft — שתיהן O
מחסנית היא כמו ערימת צלחות: מניחים למעלה ולוקחים מלמעלה — האחרונה שהונחה יוצאת ראשונה. תור הוא כמו תור בקופה: מי שהגיע ראשון מקבל שירות ראשון. זהו ההבדל כולו — מאיזה קצה לוקחים.
- מחסנית (stack)
- מבנה LIFO — האחרון שנכנס יוצא ראשון. בפייתון: list עם append ו-pop בקצה, שתיהן O(1).
- תור (queue)
- מבנה FIFO — הראשון שנכנס יוצא ראשון. בפייתון: collections.deque עם append ו-popleft, שתיהן O(1).
- deque (תור דו-קצֵה)
- תור דו-קצה מ-collections; מאפשר הוספה והוצאה משני הקצוות ב-O(1), ולכן מתאים לתור FIFO יעיל.