بنى البيانات – المصفوفة أحادية البعد

عند حل المسائل البرمجية يتم التعامل مع مدخلات، بيانات ومعطيات لمعالجتها والخلاص إلى نتيجة هذه المعالجة، لكن كيف يتم التعامل مع البيانات من أجل معالجتها؟

قبل كل شيء يجب تحديد صياغةٍ معينةٍ لتخزينها ضمن ذاكرة العمل باستخدام المتغيرات المناسبة، ويوجد العديد من البنى التي تُستخدم لتخزين المعطيات، نذكر منها: المصفوفة، والمكدس، والرتل، والسلسلة، والأشجار، وغيرها من البنى التي سنأتي على ذكرها في المقالات القادمة.

سنبدأ بالحديث عن أبسط بنى التخزين: “المصفوفة أحادية البعد”.

ما هي المصفوفة؟

المصفوفة هي عبارة عن مجموعة من المتغيرات المفهرسة، تحتوي على عناصر من نفس النوع (أعداد صحيحة، أو أعداد حقيقية، أو محارف نصية إلخ..)، ويتم حجز مكانٍ مخصصٍ لها في الذاكرة.

كيف يمكن الوصول إلى عناصر المصفوفة؟

يمكن الوصول إلى أحد عناصر المصفوفة عن طريق الدليل index أي موقع العنصر في المصفوفة (رقم الخانة التي تحوي العنصر)، بحيث تكون مفهرسةً من 0 إلى n-1 ( حيث n عدد عناصر المصفوفة)، فعلى سبيل المثال، إذا كان لدينا مصفوفة حجمها 5 سيكون دليل العنصر الأول “0” ودليل العنصر الأخير”4″؛ أي خمسة عناصر.

 

وكتطبيق، يمكن الوصول مثلاً إلى الرقم 12 بنقل المؤشر إلى الخانة ذات الدليل (index) رقم 1 كما في الجدول أعلاه.

كيف يتم التصريح عن المصفوفة؟

التصريح عن المصفوفة، يعني حجز مكانٍ لها في الذاكرة باسمٍ معين، وتحديد حجمها (عدد العناصر)، وتحديد نمط المعطيات.

تختلف طرق التصريح عن المصفوفة تبعًا لبروتوكولات لغة البرمجة التي تعمل بها، فعلى سبيل المثال، إذا كانت اللغة التي تعمل بها هي لغة C++ (هي من أِشهر اللغات في عالم البرمجة وخاصةً عندما يأتي الأمر إلى مجال الـ problem solving) يكون التصريح كالتالي:

[c]
int arr[5];
[/c]

ماذا عن تهيئة المصفوفة؟

تهيئة المصفوفة تعني تحديد العناصر التي تحتويهم المصفوفة قبل البدء بالعمل عليها. ويمكن تحقيق ذلك باستخدام C++ كالتالي:

[c]
int arr[5] = {4, 12, 7, 15, 9};
[/c]

إحدى العمليات الأساسية على المصفوفات، قراءة  عناصر المصفوفة باستخدام حلقة for، أو يمكن الوصول إلى عنصرٍ معين عبر الدليل الذي يُحدد موقعه ضمنها. لكن لتحقيق الفائدة القصوى من المصفوفات، عليك بالاطلاع على استخداماتها المتنوعة، وتطبيقها في حل المسائل البرمجية المختلفة.

لم ننته من المصفوفات بعد! يتبع في المقال القادم ..

  • إعداد: صامد الحجاجلة
  • مراجعة: نور عبدو
  • تدقيق لغوي: مروى بوسطه جي
مصدر Hackerearth
تعليقات
Loading...

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More