أهلاً بكم في درسنا عن المصفوفات والقوائم المرتبطة. في هذا الدرس، سنتعلم طريقتين بسيطتين لتخزين البيانات وتنظيمها. تخيل أن لديك صفًا من صناديق الألعاب أو صفًا من الخزائن في المدرسة. تعمل المصفوفات والقوائم المرتبطة بطريقة مشابهة، فهي تساعدنا على تنظيم الأشياء وسهولة العثور عليها. هذا الدرس مكتوب بلغة بسيطة مع أمثلة يومية لمساعدتك على فهم هذه الأفكار بسهولة.
تساعد هياكل البيانات أجهزة الكمبيوتر على تخزين المعلومات وتنظيمها. من هياكل البيانات المهمة المصفوفات والقوائم المرتبطة. يمكنك اعتبار المصفوفة صفًا من الصناديق، والقائمة المرتبطة سلسلة من الأدلة المترابطة في لعبة البحث عن الكنز. يساعدنا كلاهما في تتبع العديد من الأشياء، مثل الألعاب والكتب وحتى وجباتنا الخفيفة المفضلة.
سنتحدث عن ماهية المصفوفة والقائمة المرتبطة، وكيفية عملهما، واختلافاتهما. سنستعرض أيضًا أمثلة واقعية توضح هذه الأفكار قدر الإمكان.
المصفوفة هي ببساطة مجموعة من العناصر. تشبه صفًا من الصناديق، كل صندوق يحتوي على عنصر واحد. على سبيل المثال، تخيل مجموعة من خمسة صناديق مصفوفة في صف واحد. يمكنك استخدام كل صندوق لتخزين لعبتك المفضلة أو وجبة خفيفة.
لكل مربع في المصفوفة رقم يُسمى فهرسًا. عادةً ما يكون المربع الأول مرقمًا بالرقم 0، ثم التالي بالرقم 1، ثم 2، وهكذا. يساعدك هذا الترقيم على العثور على عنصر محدد بسرعة. على سبيل المثال، إذا كنت تريد العنصر في المربع الثالث، فما عليك سوى النظر إلى المربع ذي الفهرس 2.
إليكم صيغة بسيطة لشرح كيفية العثور على عنصر في مصفوفة. إذا كان المربع الأول عند نقطة البداية، فيمكن اعتبار عنوان أي عنصر كما يلي:
\( \textrm{عنوان}(A(i)) = \textrm{عنوان}(A(0)) + i \times \textrm{(حجم عنصر واحد)} \)
يخبرنا هذا أنه للانتقال من المربع الأول إلى المربع الذي نريده، عليك أن تحسب للأمام عددًا معينًا من المسافات.
تخيلوا صفًّا من المقاعد يشبه مقاعد دار سينما صغيرة. لكل مقعد رقم، ويمكنك الوصول إليه بسرعة إذا كنت تعرف رقمه.
تخيل أن مدرستك لديها صف من الخزائن، لكل منها رقم فريد. عندما تضع حقيبتك في خزانتك، استخدم الرقم المحدد على الخزانة. في المصفوفة، تشبه كل خزانة صندوقًا، ويشير الرقم إلى المكان الدقيق لحفظ حقيبتك أو بياناتك.
القائمة المرتبطة هي طريقة أخرى لتخزين العناصر. وهي تختلف عن المصفوفة لأنها لا تستخدم صفًا طويلًا من المربعات الثابتة، بل تستخدم مربعات خاصة تُسمى العقد. تحتوي كل عقدة على عنصر، ولها أيضًا مؤشر يُشير إلى مكان العقدة التالية.
تخيل أنك في رحلة بحث عن كنز. كل دليل تعثر عليه يدلك على مكان الدليل التالي. في القائمة المرتبطة، كل عقدة تشبه أحد هذه الأدلة. عندما تبدأ بالدليل الأول، تتبع المؤشر من عقدة إلى أخرى حتى تجد ما تحتاجه.
يمكنك اعتبار كل عقدة بمثابة مظروف صغير. يحمل المظروف بطاقة (البيانات) وملاحظة (المؤشر). تُخبرك هذه الملاحظة بالمظروف التالي في السطر.
دعونا نلقي نظرة على طريقة بسيطة لكتابة ما هي العقدة:
العقدة = {البيانات، المؤشر)
البيانات في العقدة هي المعلومات المخزنة، والمؤشر يشبه سهمًا يوجهك إلى العقدة التالية. على عكس المصفوفة، لا تتطلب القائمة المرتبطة أن تكون جميع العقد متجاورة في الذاكرة؛ إذ يمكن أن تكون في أي مكان، طالما أن المؤشرات تربطها.
هناك أنماط مختلفة للقوائم المرتبطة. إليك ثلاثة أنواع شائعة:
تخيل أنك تتبع خريطة كنز. كل خطوة على الخريطة تُشير إلى مكان الخطوة التالية. حتى لو أضفت دليلاً أو حذفته، لا يزال بإمكانك المتابعة بقراءة الدليل على كل بطاقة. هكذا تعمل القائمة المترابطة. كل عقدة (أو دليل) متصلة بالعقدة التي تليها، مما يسمح لك بالتنقل عبر القائمة خطوة بخطوة.
تساعدنا المصفوفات والقوائم المرتبطة في تخزين العناصر، ولكن بطرق مختلفة. إليك بعض المقارنات:
لكل بنية بيانات مزاياها وتحدياتها. فهم هذه المزايا يساعدك على اختيار الأنسب للاستخدام.
المصفوفات:
المزايا:
العيوب:
القوائم المرتبطة:
المزايا:
العيوب:
لنرَ كيف يُمكننا استخدام المصفوفة بطريقة بسيطة. لنفترض أنك تُريد تخزين ألوانك الخمسة المُفضّلة. أنشئ مصفوفة بخمسة مربعات. ثم ضع كل لون في مربع بالترتيب. على سبيل المثال:
الآن، إذا أردت معرفة لون المربع ٢، فما عليك سوى النظر إليه وستجد اللون "أخضر". يُعدّ هذا الوصول السهل أحد أفضل مزايا استخدام المصفوفات.
الآن، لنلقِ نظرة على القائمة المرتبطة. تخيلها كبحث عن كنز، حيث تبدأ بدليل ثم تتبع التعليمات للعثور على الدليل التالي. في القائمة المرتبطة، نبدأ بعقدة تحتوي على بعض البيانات. تحتوي هذه العقدة على مؤشر يُظهر العقدة التالية.
على سبيل المثال، تخيل أن لديك ثلاث عقد في قائمة مرتبطة تحكي قصة ممتعة:
ابدأ من العقدة ١ وتتبع المؤشر (الدليل) إلى العقدة ٢، ثم إلى العقدة ٣. حتى لو أردت إضافة دليل جديد بين أيٍّ منهما، فما عليك سوى تغيير بعض المؤشرات. هذا يجعل القوائم المرتبطة مرنة للغاية.
من المفيد أن تتخيل هذه الهياكل البيانية في ذهنك. تخيّل المصفوفة كصف طويل من الصناديق الشفافة والمسمّاة على رف. كل صندوق يحمل شيئًا وله مكان ثابت. الآن، تخيّل القائمة المرتبطة كسلسلة من البطاقات. تحتوي كل بطاقة على ملاحظة تشير إلى مكان إخفاء البطاقة التالية. في المصفوفة، يمكنك الانتقال مباشرةً إلى صندوق محدد برقمه. أما في القائمة المرتبطة، فعليك متابعة البطاقات بالترتيب.
تُستخدم المصفوفات في العديد من الأمور اليومية. على سبيل المثال، تخيّل تقويمًا. يحتوي التقويم على عدد ثابت من أيام الأسبوع، وهذه الأيام مُرتبة في صف. عند النظر إلى التقويم، ستعرف بالضبط أي يوم يقع في أي مكان.
تُستخدم القوائم المرتبطة عندما يتغير عدد العناصر بمرور الوقت. تخيّل طابورًا من الناس ينتظرون عند شاحنة آيس كريم. أحيانًا ينضمّ أشخاص جدد إلى الطابور، وأحيانًا يغادر أحدهم. يمكن أن يكبر الطابور أو يتقلص دون الحاجة إلى إنشاء هيكل ثابت جديد. هذا يجعل القوائم المرتبطة مفيدة جدًا في الحالات التي تتغير فيها الأمور باستمرار.
يعتمد الاختيار بين المصفوفات والقوائم المرتبطة على كيفية استخدام بياناتك. إذا كنت تعلم أن لديك دائمًا عددًا ثابتًا من العناصر - مثل أيام الأسبوع - فإن المصفوفة مناسبة جدًا. أما إذا كانت كمية البيانات متغيرة وتحتاج إلى هيكلية قابلة للتكيف بسهولة، فإن القائمة المرتبطة ستكون الخيار الأفضل.
على سبيل المثال، في لعبة حاسوبية، يُمكن استخدام مصفوفة لتخزين نتائج كل مستوى لأن عدد المستويات ثابت. من ناحية أخرى، يُمكن استخدام قائمة مرتبطة لإدارة قائمة من حركات أو أفعال اللاعب، والتي يمكن أن تتزايد مع استمرار اللعبة.
عندما تحتاج إلى وصول سريع إلى العناصر حسب موقعها، تُعدّ المصفوفات الخيار الأمثل. ذلك لأنه يمكنك الانتقال مباشرةً إلى أي موضع إذا كنت تعرف رقمه. ومع ذلك، عندما تحتاج إلى إضافة عناصر أو إزالتها بشكل متكرر، تُعدّ القوائم المرتبطة أكثر فائدة لأنها تُتيح لك تغيير القائمة دون الحاجة إلى نقل العديد من العناصر.
فكر في الأمر بهذه الطريقة: إذا كان لديك ألبوم ملصقات بعدد محدد من الصفحات، فإن المصفوفة تشبه هذا الألبوم. ولكن إذا كانت لديك مجموعة متزايدة من البطاقات البريدية التي تضيفها إلى لوحة إعلانات، فإن القائمة المرتبطة أشبه بذلك، إذ يمكنك بسهولة إضافة بطاقة بريدية جديدة بين البطاقات الأخرى دون الحاجة إلى إعادة ترتيب اللوحة بأكملها.
دعونا نراجع النقاط الرئيسية في درسنا:
المصفوفات:
القوائم المرتبطة:
الاختلافات والاستخدامات:
باختصار، تُعدّ المصفوفات والقوائم المرتبطة هيكلي بيانات مهمين يُستخدمان لتنظيم البيانات. تعمل المصفوفات كصف من الصناديق الثابتة المرقمة، بينما تعمل القوائم المرتبطة كبحث عن الكنز، حيث تُشير كل خطوة إلى وجهتك التالية. لكلٍّ من الطريقتين مزاياها الخاصة، ويُستخدمان في مواقف مختلفة حسب احتياجات المهمة.
إن فهم هاتين الطريقتين لتخزين البيانات مفيدٌ جدًا. تستخدم العديد من برامج الحاسوب والألعاب والتطبيقات المصفوفات والقوائم المرتبطة في الخلفية. بتعلم كيفية عملها، ستكتسب فهمًا أعمق لكيفية تنظيم أجهزة الحاسوب للبيانات وإدارتها.
تذكر: المصفوفات بسيطة وسريعة عندما يكون هيكلها ثابتًا، بينما توفر القوائم المرتبطة مرونةً عند تغير البيانات. سواءً تخيلتَ صفًا من الخزائن أو مسارًا مليئًا بالدلائل، فإن هذه المفاهيم تساعدنا على فهم كيفية تخزين المعلومات واستخدامها يوميًا.
لقد أعطاك هذا الدرس فكرة واضحة عن ماهية المصفوفات والقوائم المرتبطة. مع استمرارك في تعلم علوم الحاسوب واستكشافها، ستساعدك هذه الأفكار الأساسية على فهم مواضيع أكثر تعقيدًا. إنها تُشكل اللبنات الأساسية لهياكل البيانات والخوارزميات الأكثر تقدمًا.
ملخص النقاط الرئيسية:
شكرًا لقراءتكم هذا الدرس حول المصفوفات والقوائم المرتبطة. نأمل أن تكونوا قد استمتعتم بتعلم هذه الطرق لتخزين البيانات بطريقة واضحة وبسيطة. مع تقدمكم في التعلم، تذكروا هذه الهياكل الأساسية وكيف تساعد في عمل أجهزة الكمبيوتر بكفاءة.