هياكل البيانات الخطية في الواجهة الأمامية (Frontend Linear Data Structures)

تقوم هياكل البيانات الخطية بترتيب العناصر في تسلسل، حيث يكون لكل عنصر سلف (predecessor) وخلف (successor) واحد.

المصفوفات (Arrays)

المصفوفات هي الأداة الرئيسية في JavaScript. وهي تستخدم ذاكرة متصلة (contiguous memory)، مما يتيح لك الوصول إلى أي عنصر عبر فهرسه (index) بشكل فوري.

ملاحظة: عندما تكبر المصفوفة بشكل كبير، يجب على JavaScript تخصيص كتلة ذاكرة أكبر ونسخ كل شيء إليها، مما يؤثر على الأداء.

المكدس (Stacks)

يتبع المكدس قاعدة LIFO: "ما يدخل أخيراً يخرج أولاً" (Last In, First Out). تخيل كومة من الأطباق؛ فأنت تضيف أو تزيل من الأعلى فقط.

الطابور (Queues)

يتبع الطابور قاعدة FIFO: "ما يدخل أولاً يخرج أولاً" (First In, First Out). تخيل طابوراً في متجر.

تحذير: استخدام shift على مصفوفة يكون بطيئاً مع مجموعات البيانات الكبيرة، حيث يجب أن يتحرك كل عنصر إلى اليسار لملء الفراغ. للبيانات الضخمة، استخدم القائمة المرتبطة (linked list) بدلاً من ذلك.

القوائم المرتبطة (Linked Lists)

تتكون القائمة المرتبطة من عقد (nodes). تحتوي كل عقدة على بيانات ومؤشر (pointer) إلى العقدة التالية.

ملخص المقارنة:

نصائح احترافية لـ JavaScript:

المصدر: https://dev.to/markyu/frontend-linear-data-structures-deep-dive-arrays-stacks-queues-and-linked-lists-mp2