الفكرة ببساطة
الطابور يشبه انتظار دورك في مكتب الخدمة. أول طلب يدخل يكون أول طلب يطلع. هذا الترتيب اسمه FIFO.
المكدس يشبه رص الكتب فوق بعض. آخر كتاب وضعته هو أول كتاب تقدر ترفعه. هذا الترتيب اسمه LIFO، ومن استخداماته التراجع عن آخر إجراء.
مثال محلول
دخلت الطلبات A ثم B ثم C. لو وصل موظف واحد لمعالجة الطلب التالي، وش يطلع من كل هيكل؟
Queue: A → B → C | remove → A
Stack: A → B → C | remove → Cفي الطابور يبدأ بـ A لأن طلبه الأقدم. في المكدس يبدأ بـ C لأنه آخر عنصر دخل.
انتبه لهالنقطة
قبل تحل، ارسم جهة الإدخال وجهة الإزالة. في الطابور العملي استخدم بنية تدعم الإزالة من المقدمة بكفاءة، مثل deque في Python.
جرّب بنفسك
في طابور، أدخل X ثم Y، أخرج عنصرا، ثم أدخل Z. وش ترتيب العناصر المتبقية من المقدمة للنهاية؟
اعرض الإجابة
يبقى Y ثم Z. خرج X في خطوة الإزالة لأنه دخل قبل Y.