العودة إلى الدورة

الدرس الثاني عشر: المكدسات (Stacks) (LIFO) وقوائم الانتظار (Queues) (FIFO)

الخوارزميات: من الصفر إلى الاحتراف (دليل المبتدئين)

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 - خوارزميات الرسوم البيانية).