الفرق بين المصفوفات والقوائم المرتبطة

الفرق بين المصفوفات والقوائم المرتبطة
الفرق بين المصفوفات والقوائم المرتبطة

فيديو: الفرق بين المصفوفات والقوائم المرتبطة

فيديو: الفرق بين المصفوفات والقوائم المرتبطة
فيديو: ما الفرق بين المعيد والمحاضر والدكتور 2024, يوليو
Anonim

المصفوفات مقابل القوائم المرتبطة

المصفوفات هي بنية البيانات الأكثر استخدامًا لتخزين مجموعة العناصر. توفر معظم لغات البرمجة طرقًا لتعريف المصفوفات بسهولة وعناصر الوصول في المصفوفات. القائمة المرتبطة ، بشكل أكثر دقة القائمة المرتبطة بشكل فردي ، هي أيضًا بنية بيانات يمكن استخدامها لتخزين مجموعة من العناصر. يتكون من سلسلة من العقد ولكل عقدة مرجع للعقدة التالية في التسلسل.

الموضح في الشكل 1 ، هو جزء من الكود يُستخدم عادةً للإعلان عن القيم وتعيينها إلى مصفوفة. الشكل 2 يصور كيف ستبدو المصفوفة في الذاكرة.

صورة
صورة
صورة
صورة

يحدد الرمز أعلاه مصفوفة يمكنها تخزين 5 أعداد صحيحة ويتم الوصول إليها باستخدام الفهارس من 0 إلى 4. إحدى الخصائص المهمة للمصفوفة هي تخصيص المصفوفة بأكملها ككتلة واحدة من الذاكرة ويحصل كل عنصر على مساحته الخاصة في المصفوفة. بمجرد تحديد المصفوفة ، يتم تحديد حجمها. لذلك إذا لم تكن متأكدًا من حجم المصفوفة في وقت الترجمة ، فسيتعين عليك تحديد مصفوفة كبيرة بما يكفي لتكون في الجانب الآمن. لكن في معظم الأوقات سنستخدم عددًا أقل من العناصر مما خصصناه. لذلك يتم إهدار قدر كبير من الذاكرة بالفعل. من ناحية أخرى ، إذا لم تكن "المصفوفة الكبيرة بما يكفي" في الواقع كبيرة بما يكفي ، فسوف يتعطل البرنامج.

تقوم القائمة المرتبطة بتخصيص الذاكرة لعناصرها بشكل منفصل في كتلة الذاكرة الخاصة بها ويتم الحصول على الهيكل العام من خلال ربط هذه العناصر كروابط في سلسلة.يحتوي كل عنصر في قائمة مرتبطة على حقلين كما هو موضح في الشكل 3. يحتفظ حقل البيانات بالبيانات الفعلية المخزنة والحقل التالي يحتوي على مرجع للعنصر التالي في السلسلة. يتم تخزين العنصر الأول من القائمة المرتبطة كرأس القائمة المرتبطة.

بيانات التالي

الشكل 3: عنصر قائمة مرتبطة

صورة
صورة
صورة
صورة

الشكل 4 يصور قائمة مرتبطة بثلاثة عناصر. يخزن كل عنصر بياناته وجميع العناصر باستثناء العنصر الأخير تخزن مرجعًا للعنصر التالي. العنصر الأخير يحمل قيمة فارغة في حقله التالي. يمكن الوصول إلى أي عنصر في القائمة بالبدء من الرأس واتباع المؤشر التالي حتى تفي بالعنصر المطلوب.

على الرغم من أن المصفوفات والقوائم المرتبطة متشابهة بمعنى أن كلاهما يستخدم لتخزين مجموعة من العناصر ، إلا أنهما يواجهان اختلافات بسبب الاستراتيجيات التي يستخدمونها لتخصيص الذاكرة لعناصرها. تقوم المصفوفات بتخصيص الذاكرة لجميع عناصرها ككتلة واحدة ويجب تحديد حجم المصفوفة في وقت التشغيل. سيؤدي هذا إلى جعل المصفوفات غير فعالة في المواقف التي لا تعرف فيها حجم المصفوفة في وقت الترجمة. نظرًا لأن القائمة المرتبطة تخصص الذاكرة لعناصرها بشكل منفصل ، فستكون أكثر فاعلية في المواقف التي لا تعرف فيها حجم القائمة في وقت الترجمة. لن يكون الإعلان والوصول إلى العناصر في قائمة مرتبطة مباشرًا مقارنةً بكيفية الوصول المباشر إلى العناصر في مصفوفة باستخدام فهارسها.

موصى به: