مفهوم – Linked List هي بنية من البيانات تحتوي على مجموعة من السجلات مرتبة ومرتبطة ببعضها البعض وكل سجل يحتوي على حقلين الحقل الأول يحتوي على القيمة والثاني يحتوي على مؤشر عنوان السجل التالي Next أو عنوان ملغي Null (لو كان السجل الأخير) وكل سجل في القائمة يسمى عقدة Node ولا يشترط أن تكون العقد مرتبة بشكل متتالي في الذاكرة لأن نظام التشغيل هو من يقوم بحجز مكان العقدة في الذاكرة.
وتستخدم LinkedList لإنشاء مصفوفات متطورة مقارنةً مع المصفوفات العادية Arrays, حيث توفر LinkedList لك مجموعة من الدوال التي تمكنك من البحث فيها, التشييك على عناصرها, إضافة عناصر جديدة, حذف عناصر منها, و معالجة أكثر من عنصر فيها في نفس الوقت.
وتعتبر أهم ميزة في المصفوفات التي نوعها LinkedList هي أن عدد العناصر فيها غير ثابت, حيث أنه يزيد عند إضافة عنصر جديد فيها وينقص عند حذف عنصر منها بشكل تلقائي, و هذه الميزة غير موجودة في المصفوفات العادية.
كما أنك تستطيع الوصول للعناصر الموجودة فيها عن طريق أرقام الـ Index التي تعطى بالترتيب لكل عنصر يضاف فيها.
الفرق بين LinkedList و ArrayList
الكلاس LinkedList يشبه كثيراً الكلاس ArrayList, الفرق بينهما هو التالي:
مترجم لغة جافا يعامل الكلاس LinkedList بشكل أسرع من الكلاس ArrayList.
الكلاس LinkedList يملك دوال للحذف و الإضافة ليست موجودة في الكلاس ArrayList.
الكلاس LinkedList يحتل مساحة أكبر في الذاكرة مقارنةً مع المساحة التي يحتلها الكلاس ArrayList.
اقرأ ايضًا: كل ما تحتاج معرفته عن هياكل البيانات Data Structure
أنواع القوائم المرتبطة LinkedList
يوجد ثلاث انواع للقوائم المرتبطة Linked Lists وهما :
البسيطة Simple Linked List : حيث كل عنصر يشير فقط إلى العنصر الذى يليه.
المزدوجة Doubly Linked List : حيث كل عنصر يشير إلى للعنصر الذى يليه والذى يسبقه.
الدائرية Circular Linked List : حيث اخر عنصر يشير إلى اول عنصر.
ادراج عنصر جديد فى داخل القائمة المرتبطة LinkedList
ندرج عنصر جديد فى اي مكان داخل القائمة المرتبطة كالتالى:
نحدد العنصر السابق للمكان المطلوب ادراج العنصر الجديد فيه.
نحذف المؤشر من العنصر السابق ونجعله يشير إلى العنصر الجديد.
نجعل العنصر الجديد يشير إلى العنصر التالى.
عملية الحذف Deletion في LinkedList
يتم حذف عنصر من القائمة المرتبطة عن طريق جعل العنصر السابق له يشير إلى العنصر التالى له بالتالى يصبح معزول من القائمة المرتبطة.