قائمة متصلة

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث

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

Singly-linked-list.svg

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

المبادئ الأساسية[عدل]

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

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

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

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

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

Circularly-linked-list.svg

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

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

Doubly-linked-list.svg

المراجع[عدل]

  1. ^ "Archived copy"، مؤرشف من الأصل في 23 سبتمبر 2015، اطلع عليه بتاريخ 31 يوليو 2015.{{استشهاد ويب}}: صيانة CS1: الأرشيف كعنوان (link)
  2. ^ Okasaki, Chris (1995)، Purely Functional Random-Access Lists، In Functional Programming Languages and Computer Architecture، ACM Press، ص. 86–95، مؤرشف من الأصل (PS) في 23 سبتمبر 2016، اطلع عليه بتاريخ 7 مايو 2015.
  3. ^ Data Structures (باللغة الإنجليزية)، PediaPress، مؤرشف من الأصل في 12 ديسمبر 2019.