في هذه الصفحة
من أهم المهارات في مجال البرمجة هي فهم كيفية تخزين هياكل البيانات في ذاكرة الكمبيوتر وكيف يتم تنفيذ العمليات على هذه البيانات، هذه المهارة تساعد على اختيار هياكل البيانات المناسبة للبرامج التي ستقوم بكتابتها والتي تضمن لك أفضل أداء ممكن وفقاََ لطبيعة البرنامج الذي تقوم بكتابته، يمكنك قراءة هذا المقال كمثال على أهمية اختيار هياكل البيانات في تحسين الأداء.
من أكثر هياكل البيانات شيوعاََ هو الـdynamic array أو ما يعرف ب List في لغة python أو Vector في لغة ++c، في هذا المقال سنبدأ باستعراض أهم مميزات وعيوب ال array ثم سنبدأ في التفكير في كيفية تنفيذ الـdynamic array الخاص بنا.
كيف تعمل الـMemory ؟
لنبدأ حديثنا بفهم كيفية عمل ذاكرة الكمبيوتر، يمكننا التفكير في ذاكرة الكمبيوتر كمجموعة من الأماكن المتجاورة حيث لكل مكان العنوان الخاص به و يمكننا الوصول له من خلال هذا العنوان.
الشكل التالي توضيح لذاكرة الكمبيوتر، كل مربع في الصورة هو مكان لتخزين المعلومات و 0x1c16af76960 هو عنوان المكان المشار إليه.
كلما أردت تخزين شيئاََ ما في ذاكرة الكمبيوتر، يجب أن تطلب مساحة تخزين من الكمبيوتر ثم يقوم الكمبيوتر بتوفير المساحة المطلوبة ويعطيك عنوان المكان الذي تستطيع من خلاله تخزين ما تريد.
هذا بالنسبة لتخزين شئ واحد فقط في الذاكرة، ولكن ماذا لو أردنا تخزين عدة أشياء في نفس الوقت ؟ هنا يأتي دور ال array، يعد ال array أحد أهم وأبسط هياكل البيانات وأكثرها شيوعاََ حيث يسمح لنا الـ array بتخزين مجموعة من البيانات من نفس النوع بجوار بعضهم البعض.
ميزة الـ Array
الميزة الأهم لل array هي الـ random access وهي إمكانية الوصول لأي مكان داخل الـ array في وقت ثابت بغض النظر عن المكان وعن حجم الـ array، لماذا ؟
لنفترض أن ال array يحتوي علي 5 عناصر وأنه يبدأ عند العنوان 00، كما في الصورة التالية
لو سألتك ما عنوان العنصر الخامس، ستقوم بعملية جمع بسيطة ثم تخبرني أن عنوان المكان الخامس هو 04، و يمكننا تعميم عملية الجمع هذه على array من أي حجم كالتالي: