تجاوز إلى المحتوى الرئيسي
تابعنا على تيليجرامانضم

الخوارزميات والبرمجة

ملخص هياكل تراكيب البيانات، المهارات الرقمية

القوانين والتعريفات والأفكار الأساسية في الموضوع، من الكتاب المقرّر. راجعها داخل TawjihiAI مع البطاقات والأسئلة.

الصفوف:

  • تُعرَّف الصفوف بأنَّها مجموعة مُتسلسلة مُرتَّبة من القِيَم، وهي تمتاز عن القوائم بثباتها وعدم قابليتها للتعديل والتغيير.
  • وهذا يعني إمكانية الوصول إلى العناصر داخل الصفوف، ولكن من دون تغيير العناصر الموجودة أو إضافة عناصر أُخرى.
  • عند إنشاء الصفوف، توضع العناصر المُكوِّنة لها داخل أقواس، ويُفصل بينها بفواصل.

المجموعات:

  • تُعرَّف المجموعات بأنَّها هياكل بيانات في لغة البرمجة بايثون تحتوي على مجموعة من الكائنات.

مزايا المجموعات:

  • أ. عدم الترتيب: لا يُشترط ترتيب العناصر في المجموعات؛ ما يُفسِّر اختلاف ترتيب العناصر أثناء عملية الطباعة.
  • ب. الثبات وعدم القابلية للتكرار: لا يُسمح بوجود عناصر مُكرَّرة في المجموعات؛ إذ تُحذَف التكرارات تلقائيًا عند إضافة العناصر.
  • ج. الثبات وعدم القابلية للتعديل ⁦(Immutable)⁩: يُمكن إضافة عناصر إلى أيَّة مجموعة أو حذف عناصر منها، ولكن يتعذَّر تعديل العناصر الفردية داخل المجموعة.
  • د. دعم العمليات الرياضية: تُعدُّ المجموعات خيارًا مثاليًا لدعم العمليات الرياضية والحسابية، مثل: التقاطع، والاتحاد، والفَرق بين المجموعات.
  • هـ. سرعة الأداء: تُعدُّ المجموعات أسرع من القوائم في ما يخصُّ عمليات البحث والمقارنة؛ نظرًا إلى عدم وجود ترتيب لعناصرها.

نوع البيانات المُجرَّدة:

  • تعرَّفتُ آنفًا كيف تُخزَّن البيانات في بعض التراكيب بأشكال مختلفة تبعًا لنوع هذه البيانات، والغرض من استخدامها.
  • ولكن تعتمد طريقة تخزين البيانات على مجموعة من العوامل، أبرزها: الحاجة إلى تعديل البيانات، وإمكانية تكرار العناصر، وطبيعة العمليات التي يُراد تنفيذها.
  • فكل نوع من تراكيب البيانات (مثل: القوائم، والصفوف، والقواميس، والمجموعات) يمتاز بخصائص مُعيَّنة تُناسب مُتطلبات مُحدَّدة في البرمجة.
  • يُعرَّف نوع البيانات المُجرَّدة ⁦(ADT)⁩ بأنَّه نموذج يُركِّز على السلوكات، أو العمليات (مثل: القراءة، والتعديل)، أو العمليات الحسابية الخاصة بالبيانات، بدلًا من التركيز على كيفية تخزين البيانات.
  • من الأمثلة على نوع البيانات المُجرَّدة ⁦(ADT)⁩: القوائم المُترابطة ⁦(Linked List)⁩، والمكدس ⁦(Stack)⁩.

القوائم المُترابطة:

  • تُخزَّن البيانات في القوائم المُترابطة على هيئة عُقد، وتحتوي كل عُقدة ⁦(Node)⁩ من هذه العُقد على مرجعية العُقدة التي تليها كما هو مُبيَّن في الشكل (٣-١).
  • تُستخدَم القوائم المُترابطة في التطبيقات التي تتغيَّر حجوم بياناتها، وفي عمليات التخزين المُؤقَّت.
  • كذلك تُستخدَم هذه القوائم في تتبُّع العمليات الخاصة بأنظمة التشغيل، وفي تتبُّع الصفحات المُحرَّرة، إضافةً إلى الرسوم التي تُستخدم في تمثيل الأشكال الهندسية، مثل: النقاط، والخطوط، وحدود الكائنات ذات الأبعاد الثنائية.

المكدس:

  • نوع من أنواع البيانات المُجرَّدة، يتعامل مع البيانات بطريقة (⁦Last-In/First-Out⁩: ⁦LIFO⁩)؛ أي إنَّ آخر عنصر يدخل في المكدس هو أوَّل عنصر يخرج منه.
  • وهذا يعني أنَّ لهذه القائمة بوَّابة واحدة فقط تُستخدم مُدخلًا ومُخرَجًا كما هو مُبيَّن في الشكل (٣-٢).

المواطنة الرقمية:

  • محو الأمية الرقمية ⁦(Digital Literacy)⁩: أتعلم كيف أختار هيكل البيانات المناسب (مثل: القوائم للقِيَم المُتكرِّرة، والقواميس للعلاقات بين المفاتيح والقِيَم)، وأعمل على توعية المُستخدمين بأهمية تنظيم البيانات جيدًا لتحسين مستوى الكفاءة والأداء.