الفكرة
سلسلة من العقد (Nodes)، كل عقدة تحوي قيمة ومؤشّرًا للعقدة التالية:
class Node:
def __init__(self, value):
self.value = value
self.next = None
a = Node(10)
b = Node(20)
a.next = b # 10 -> 20
مفردة مقابل مزدوجة
- مفردة (Singly): كل عقدة تشير للتالية فقط.
- مزدوجة (Doubly): تشير للتالية والسابقة (تنقّل في الاتجاهين).
التعقيد
| العملية | قائمة | مصفوفة |
|---|---|---|
| إدراج/حذف في البداية | O(1) | O(n) |
| الوصول بالفهرس | O(n) | O(1) |
متى نستخدمها؟
- إدراج/حذف متكرّر في البداية → قائمة مترابطة.
- وصول عشوائي سريع بالفهرس → مصفوفة.
🎯 التالي: المكدّس (Stack).