المصفوفة (Array)
مجموعة عناصر متتالية في الذاكرة، لكل عنصر فهرس.
const arr = [10, 20, 30];
arr[0]; // 10 → O(1) وصول سريع
arr.push(40); // إضافة في النهاية
| العملية | التعقيد |
|---|---|
| الوصول بالفهرس | O(1) |
| البحث | O(n) |
| الإضافة/الحذف من البداية | O(n) |
القائمة المترابطة (Linked List)
سلسلة عُقَد، كل عقدة تحوي قيمة ومؤشّرًا للعقدة التالية.
[10|•] → [20|•] → [30|null]
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
const head = new Node(10);
head.next = new Node(20);
| العملية | التعقيد |
|---|---|
| الإضافة/الحذف من البداية | O(1) |
| الوصول بالفهرس | O(n) |
أيهما تختار؟
| تحتاج... | استخدم |
|---|---|
| وصولًا سريعًا بالفهرس | Array |
| إضافة/حذفًا متكرّرًا من البداية | Linked List |
💡 لا يوجد هيكل "أفضل" مطلقًا — كل واحد يتفوّق في حالات معيّنة.
🎯 التالي: المكدّس والطابور (Stack & Queue).