في علم الحاسوب القائمة المتصلة (بالإنجليزية: linked list)‏ هي بنية بيانات تتضمن من مجموعة من السجلات المرتبة والمرتبطة مع بعضها البعض، كل سجل يحتوي على حقلين الأول يحتوي على القيم أما الثاني يحتوي على مؤشر عنوان السجل التالي أو السابق أو عنوان ملغي (بالإنجليزية: NULL)‏.

ملاحظة لا يشترط أن تكون العقد مرتبة بشكل متتالي في الذاكرة لأن نظام التشغيل هو من يقوم بحجز مكان العقدة في الذاكرة.[1][2][3] في علم الحاسوب، القائمة المتصلة هي مجموعة خطية من عناصر البيانات التي لا يتم تحديد ترتيبها من خلال وضعها المادي في الذاكرة. بدلاً من ذلك ، يشير كل عنصر إلى التالي. إنها بنية بيانات تتكون من مجموعة من العقد التي تمثل معًا تسلسلًا. في أبسط أشكالها ، تحتوي كل عقدة على: بيانات ومرجع (بمعنى آخر رابط) إلى العقدة التالية في التسلسل. تسمح هذه البنية بالإدراج الفعال أو إزالة العناصر من أي موضع في التسلسل أثناء التكرار. تضيف المتغيرات الأكثر تعقيدًا روابط إضافية ، مما يسمح بإدخال أو إزالة أكثر كفاءة للعقد في المواضع التعسفية. عيب القوائم المرتبطة هو أن وقت الوصول خطي (ويصعب تحديده). الوصول الأسرع ، مثل الوصول العشوائي ، غير ممكن. تتمتع المصفوفات بمنطقة تخزين مؤقت أفضل مقارنة بالقوائم المرتبطة.

المبادئ الأساسية

عدل

كل سجل في القائمة المتصلة يسمى بالعنصر أو العقدة .

يوجد في العقدة الواحدة حقل يحتوي على عنوان العقدة التالية يسمى بـالمؤشر التالي أو السابقة يسمى بالمؤشر السابق. و حقل أخر في العقدة يسمى بحقل البيانات أو المعلومات .

و الرأس هو أول عقدة في القائمة المتصلة والذيل هو أخر عقدة .

القائمة المتصلة الخطية والدائرية

عدل

في العادة يكون في آخر عقدة عنوان العقدة التالية يؤشر على عنوان ملغي (بالإنجليزية: Null )‏، و هي قيمة وضعت من قبل المبرمجين معناها «لا يوجد مثل هذه العقدة» و تسمى قائمة متصلة خطية كما في الصورة الأولى، وفي بعض الأحيان قد تؤشر العقدة الأخيرة على العقدة الأولى، وتسمى في هذه الحالة قائمة متصلة دائرية كما في الصورة الثانية.

 

القائمة المتصلة البسيطة والمضاعفة

عدل

في القائمة المتصلة المضاعفة كل عقدة تحتوي على حقل عنوان العقدة السابقة يسمى بـالمؤشر السابق مع حقل عنوان العقدة التالية المؤشر التالي و حقل البيانات والمعلومات . تسمى القائمة المتصلة التي لا تحتوي على خاصية - التالي، السابق - بالقائمة المتصلة البسيطة .

 

المراجع

عدل
  1. ^ "Archived copy". مؤرشف من الأصل في 2015-09-23. اطلع عليه بتاريخ 2015-07-31.{{استشهاد ويب}}: صيانة الاستشهاد: الأرشيف كعنوان (link)
  2. ^ Okasaki، Chris (1995). Purely Functional Random-Access Lists. ACM Press. ص. 86–95. مؤرشف من الأصل (PS) في 2016-09-23. اطلع عليه بتاريخ 2015-05-07. {{استشهاد بكتاب}}: |عمل= تُجوهل (مساعدة)
  3. ^ Data Structures (بالإنجليزية). PediaPress. Archived from the original on 2019-12-12.