في تنفيذ القائمة المرتبطة، تحمل العقدة معلومات تتعلق بـ:
القيمة: هي البيانات التي تخزنها العقدة. يمكن أن تكون أي نوع من البيانات، مثل رقم أو نص أو كائن.
الرابط التالي: هو مؤشر إلى العقدة التالية في القائمة.
الرابط السابق: (اختياري) هو مؤشر إلى العقدة السابقة في القائمة.
يمكن تمثيل العقدة في القائمة المرتبطة بالهيكل التالي:
struct Node {
int value;
Node *next;
Node *prev;
};
مثال:
لنفترض أن لدينا قائمة مرتبطة تحتوي على الأرقام 1 و 2 و 3.
ستحتوي العقدة الأولى على القيمة 1، ورابط إلى العقدة الثانية.
ستحتوي العقدة الثانية على القيمة 2، ورابط إلى العقدة الثالثة.
ستحتوي العقدة الثالثة على القيمة 3، ورابطًا فارغًا (null) لأنها آخر عقدة في القائمة.
مميزات القوائم المرتبطة:
سهولة الإدراج والحذف في أي مكان في القائمة.
لا تتطلب إعادة تخصيص الذاكرة عند إضافة أو إزالة عناصر.
مناسبة لتخزين البيانات التي يتم إدخالها أو حذفها بشكل متكرر.
عيوب القوائم المرتبطة:
الوصول إلى عنصر عشوائي في القائمة يتطلب عبور جميع العناصر السابقة.
تتطلب مساحة ذاكرة إضافية لتخزين الروابط.
استخدامات القوائم المرتبطة:
تخزين البيانات التي يتم إدخالها أو حذفها بشكل متكرر.
تمثيل المخططات البيانية.
تنفيذ خوارزميات مثل كومة (stack) وطابور (queue).