The Code Fix

🧮 شرح هياكل البيانات والخوارزميات

المكدّس والطابور (Stack & Queue)

المكدّس (Stack) — LIFO

آخر عنصر يدخل هو أول من يخرج (Last In First Out)، مثل كومة الأطباق.

const stack = [];
stack.push(1);   // إضافة للأعلى
stack.push(2);
stack.pop();     // 2  → إخراج من الأعلى

تطبيقات: زر "تراجع" (Undo)، زرّ الرجوع في المتصفّح، استدعاءات الدوال.

الطابور (Queue) — FIFO

أول عنصر يدخل هو أول من يخرج (First In First Out)، مثل طابور الانتظار.

const queue = [];
queue.push(1);      // دخول من الخلف
queue.push(2);
queue.shift();      // 1  → خروج من الأمام

تطبيقات: طوابير الطباعة، معالجة المهام، جدولة العمليات.

مقارنة

StackQueue
المبدأLIFOFIFO
الإضافةللأعلىللخلف
الإزالةمن الأعلىمن الأمام
مثالزر التراجعطابور انتظار

مثال تطبيقي: التحقّق من الأقواس

function isBalanced(str) {
  const stack = [];
  for (let ch of str) {
    if (ch === "(") stack.push(ch);
    else if (ch === ")") {
      if (stack.length === 0) return false;
      stack.pop();
    }
  }
  return stack.length === 0;
}

🎯 التالي: خوارزميات البحث والترتيب.