12. المكدسات (Stacks) (LIFO) وقوائم الانتظار (Queues) (FIFO)
هذه هي أنواع بيانات مجردة تقيد كيفية إضافة البيانات أو إزالتها، مما يجعلها حاسمة لخوارزميات معينة.
المكدسات (Stacks) (LIFO - Last-In, First-Out)
فكر في كومة من الأطباق. آخر طبق تم وضعه في الأعلى هو أول طبق يتم إزالته.
- العمليات:
Push: يضيف عنصراً إلى الأعلى (O(1)).Pop: يزيل العنصر الأعلى (O(1)).
- حالات الاستخدام: إدارة استدعاءات الدوال (العودية)، وظيفة التراجع/الإعادة (undo/redo)، تقييم التعبيرات.
قوائم الانتظار (Queues) (FIFO - First-In, First-Out)
فكر في الأشخاص الذين ينتظرون في طابور. أول شخص في الطابور هو أول شخص يتم خدمته.
- العمليات:
Enqueue: يضيف عنصراً إلى الخلف (O(1)).Dequeue: يزيل العنصر الأمامي (O(1)).
- حالات الاستخدام: جدولة مهام الطباعة، إدارة مهام نظام التشغيل، البحث بعرض أولاً (Breadth-First Search - خوارزميات الرسوم البيانية).