ماهى هياكل البيانات Data Structure ؟

صورة لتوضيح مفهوم هياكل البيانات
صورة توضح Stack فى هياكل البيانات

ماهى هياكل البيانات فى البرمجة ؟

هياكل البيانات هي طريقة لجمع البيانات وتنظيمها بطريقة تمكننا من إجراء عمليات على هذه البيانات بطريقة فعالة.

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

اهمية هياكل البيانات

هياكل البيانات لها اهمية كبيرة فى لادارة والتعامل مع كميات ضخمة من البيانات بفاعلية.

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

تطبيقات هياكل البيانات

لهياكل البيانات الكثير من التطبيقات العملية فاي برنامج او تطبيق يحتوى على الكثير من البيانات يلزم استخدام هياكل البيانات المناسبة لتمثيل هذه البيانات ولسهولة التعامل معها.

فمثلًا تستخدم مواقع التواصل الاجتماعى نوع من هياكل البيانات يسمى جراف Graph وهذا النوع مناسب لتمثيل البيانات المتصلة ببعضها فعلى سبيل المثال المستخدمين فى فيس بوك حيث يمكن تمثيل كل شخص فى عقدة والحواف بينهم تمثل العلاقة مع مستخدم ا خر.

استخدام graph فى فيس بوك
استخدام graph فى فيس بوك

انواع هياكل البيانات فى لغات البرمجة

يوجد نوعان من هياكل البيانات النوع الاول وهو النوع البدائى او Primitive والنوع الثانى هو النوع المعقد وهو مكون من النوع البدائى.

النوع البدائى هو طريقة لتصنيف أنواع مختلفة من البيانات مثل الأعداد الصحيحة ، والسلاسل الحرفية او النصوص ، وعليه يتم تحديد العمليات المستخدمة بين انواع البيانات المختلفة.

فمثلًا انواع البيانات من نوع الاعداد الصحيحة Integers يكمن اجراء العمليات الحسابية المختلفة عليها.

بينما فى حالة النصوص يمكن دمج النصوص.

ثم لدينا أيضًا هياكل البيانات المعقدة ، والتي يتم استخدامها لتخزين البيانات الكبيرة والبيانات التى بينها علاقة او متصلة.

امثلة على انواع هياكل البيانات المعقدة 

  • Array
  • Linked List
  • Tree
  • Graph
  • Stack, Queue

كل نوع منها له خصائص معينة ويسمح لنا كل نوع بعمليات مختلفة على البيانات والاختيار يكون على حسب طبيعة البيانات.

معرفة المزيد عن انواع البيانات

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

الخوارزميات هى مجموعة من الخطوات والاوامر الواضحة التى تكتب لحل مشكلة برمجية معينة , ويقال ان الخوارزمية جيدة اذا كانت سريعة فى التنفيذ ولها كفاءة عالية فى التخزين.

معرفة المزيد عن الخوارزميات فى البرمجة

هيكل بيانات المصفوفة Arrays

من هياكل البيانات المهمة فى البرمجة والمستخدمة كثيرًا فى الخوارزميات المختلفة , وهى عدد ثابت من العناصر المخزنة و التى يكون لها نفس النوع , وكل عنصر من عناصر المصفوفة له رقم او فهرس Index ويتم تخزين المصفوفة بشكل متجاور فى الذاكرة.

يمكننا الوصول إلى كل عنصر من المصفوفة لتعديله اوحذفه اوالحصول على قميته عن طريق هذا الفهرس Index.

يمكن كتابة الكود لاعلان المصفوفة بطرق مختلفة على حسب اللغة المستخدمة على سبيل المثال فى لغة C يكون كود اعلان المصفوفة كالتالى :

int array[6] = {35,33,42,10,14,50}

حيث يمثل int نوع البيانات داخل المصفوفة وفى هذه الحالة رقم صحيح Integer. 

ويمثل array اي اسم اختيار للمصفوفة.

ويمثل 6 عدد العناصر المحجوزة فى المصفوفة.

وتمثل الارقام بين علامة {} الاعداد الصحيحة التى تمثل عناصر المصفوفة ويفصل بينهم ب ,

ولكل عنصر من عناصر المصفوفة فهرس او رقم يبدء من 0 حتى اخر عنصر , ففى مثالنا السابق العنصر 35 له Index = 0 

وهكذا وصولًا للعنصر 19 الذى له Index = 5. 

والفهرس او Index مهم كما قلنا للوصول إلى العنصر للتحكم فيه.

هيكل بيانات القوائم المرتبطة Linked List

مثل المصفوفات ، القائمة المرتبطة هو هيكل بيانات خطي. وبخلاف المصفوفات ، لا يتم تخزين عناصر القوائم المرتبطة في امكان متجاورة فى الذاكرة ؛ ترتبط العناصر باستخدام المؤشرات او Pointers.

Linkedlist القوائم المرتبطة

هيكل بيانات Tree

  tree
      ----
       j    <-- root
     /   \
    f      k  
  /   \      \
 a     h      z    <-- leaves

على عكس المصفوفات ، والقوائم المرتبطة من النوع الخطى ، فإن الأشجار هي هياكل بيانات هرمية. النوع فى الرسمة هو من النوع Binary Tree.

يسمى العنصر الاساسى فى الشجرة Root ويسمى العناصر اسفله Child وكل نقطة تسمى Node واقصى عناصر لاسفل تسمى Leaves.

لعلك الان تتسأل ما فائدة نوع بيانات هكذا ؟!

 قد يكون أحد أسباب استخدام الأشجار هو أنك تريد تخزين بيانات وهى بطبيعتها تشكل تسلسل هرمى، على سبيل المثال نظام الملفات على جهاز كمبيوتر كالتالى

file system
-----------
     /    <-- root
  /      \
...       home
      /          \
   ugrad        course
    /       /      |     \
  ...      cs101  cs112  cs113

تطبيق هياكل البيانات المختلفة بلغة بايثون على موقع Github

دورة كاملة عن هياكل البيانات


مقالات ذات صلة

تعلم البرمجة بشكل اسرع مع هذه الخطوات

البرمجة من المهارات التى يتعلمها الكثير من الناس فى الفترة الاخيرة وذلك لاسباب كثيرة منها امكانية العمل الحر من خلال اتقان البرمجة وكذلك نظرًا للمرتبات العالية التى يحصل عليها المبرمجين المحترفين نظير عملهم فى الشركات المختلفة.

اهم المواقع العالمية التى تقدم دورات برمجة بشكل مجانى

تعلم البرمجة هذه الايام لا يحتاج سواء الاتصال بالانترنت بفضل الكثير من المنصات والمواقع

كيف اتعلم البرمجة

كيف اتعلم البرمجة ؟ لعل الكثير من الناس يبحث عن اجابة لهذا السؤال , فاذا كنت احد المهتمين ببرمجة تطبيقات الهاتف او المواقع الالكترونية او الالعاب وبرامج سطح المكتب وتريد تعلم البرمجة لهذا السبب فهذه المقالة لك.

بيئة العمل للغات البرمجة

اعداد بيئات العمل للغات البرمجة مختلفة عن بعضها ونعنى بالبيئة البرمجية انها البرامج او المترجمات او المفسرات المطلوبة لكتابة...

دورات خارجية ذات صلة

مقدمة عامة في البرمجة

دورة عن مقدمة عامة في البرمجة باللغة العربية
اشترك فى هذه الدورة

كتب بواسطة عمرو العربى

مؤسس مطور

التعليقات

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

*