تخطَّ إلى المحتوى

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

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

الدرس 7 من 25· ⏱ 1 دقائق قراءة

الفكرة

سلسلة من العقد (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).

هل كان هذا الدرس مفيدًا؟