اقرأ في هذا المقال
- ما هي هيكلة البيانات؟
- ما هي هياكل البيانات الخطية؟
- ما هي هياكل البيانات غير الخطية؟
- الاختلافات بين هيكلة البيانات الخطية وهيكلة البيانات غير الخطية
ما هي هيكلة البيانات؟
هيكلة البيانات هي تقنية لتخزين البيانات وتنظيمها بطريقة يمكن من خلالها استخدام البيانات بطريقة فعالة، في علم الحاسوب تم تصميم هياكل البيانات بطريقة يمكنها العمل مع الخوارزميات المختلفة، ويتم تصنيف هياكل البيانات إلى فئتين:
- هياكل البيانات الخطية.
- هياكل البيانات غير الخطية.
ما هي هياكل البيانات الخطية؟
هياكل البيانات الخطية هي بنية يتم فيها تخزين العناصر بالتسلسل، ويرتبط العناصر بالعنصر السابق والعنصر التالي، نظرًا لأنه يتم تخزين العناصر بشكل تسلسلي فيمكن اجتيازها أو الوصول إليها في عملية تشغيل واحدة، ويعد كتابة كود هياكل البيانات الخطية أسهل، حيث يتم تنظيم العناصر بشكل تسلسلي في الذاكرة، يتم وصول عناصر البيانات في المصفوفة الواحدة تلو الأخرى ويمكن الوصول إلى عنصر واحد فقط في كل مرة.
أنواع هياكل البيانات الخطية:
المصفوفة Array: تتكون المصفوفة من عناصر بيانات من نفس نوع البيانات، على سبيل المثال: إذا أردنا تخزين (10) أرقام جامعية لطلاب، فبدلاً من إنشاء (10) متغيرات من النوع (Int)، سننشئ مصفوفة بحجم (10)، لذلك، يمكننا القول أن المصفوفة توفر الكثير من المساحة في الذاكرة وتُقلل من الطول الكود.
المكدس Stack: عبارة عن بنية بيانات خطية تستخدم قاعدة (LIFO) اختصار لـ (Last In-First Out) تعني ما يدخل أخيراً يُصرف أولاً، حيث ستتم إزالة البيانات المضافة حديثاً أولاً، تُعرف إضافة عنصر البيانات في المكدس باسم عملية (push)، ويُعرف حذف عنصر البيانات من القائمة باسم العملية (pop).
قائمة الانتظار Queue: هي بنية بيانات تستخدم قاعدة (FIFO) اختصار لـ (First In-First Out) وتعني الوارد أولاً يخرج أولاً، في هذه القاعدة، ستتم إزالة العنصر الذي تمت إضافته في البداية أولاً، وتُعرف عملية الإدراج التي يتم إجراؤها في النهاية الخلفية بـ (enqueue)، وتُعرف عملية الحذف التي يتم إجراؤها في الطرف الأمامي باسم (dequeue).
القائمة المرتبطة Linked List: هي مجموعة من العقد تتكون من جزأين، هما عنصر البيانات والمرجع إلى العقدة التالية في التسلسل.
ما هي هياكل البيانات غير الخطية؟
هياكل البيانات غير الخطية هي أيضًا نوع آخر من بنية البيانات حيث لا يتم ترتيب عناصر البيانات بطريقة متجاورة، نظرًا لأن الترتيب غير متسلسل فلا يمكن اجتياز عناصر البيانات أو الوصول إليها في عملية تشغيل واحدة، في حالة هياكل البيانات الخطية، يرتبط العنصر بعنصرين (العنصر السابق والعنصر التالي)، بينما في بنية البيانات غير الخطية يمكن توصيل العنصر بأكثر من عنصرين.
أنواع هياكل البيانات غير الخطية:
الأشجار Trees: إنها هياكل بيانات غير الخطية تتكون من عقد مرتبطة مختلفة، يحتوي هيكل الشجرة على هرم يشكل علاقة بين عقد الفرعية وعقد الأصل.
الرسوم البيانية Graph: الرسم البياني هو بنية بيانات غير خطية لها عدد محدود من الرؤوس والحواف، وتستخدم هذه الحواف لتوصيل الرؤوس، تُستخدم الرؤوس لتخزين عناصر البيانات، بينما تمثل الحواف العلاقة بين الرؤوس، يستخدم الرسم البياني في العديد من مشاكل العالم الحقيقي مثل شبكات الهاتف وشبكات الدوائر والشبكات الاجتماعية، مثل (LinkedIn و Facebook)، في حالة (Facebook) يمكن اعتبار مستخدم واحد بمثابة عقدة، ويُعرف اتصال المستخدم بالآخرين باسم الحواف.
الاختلافات بين هيكلة البيانات الخطية وهيكلة البيانات غير الخطية:
هيكلة البيانات الخطية | هيكلة البيانات غير الخطية | ||
1 | أساسي | في هذا الهيكل، يتم ترتيب العناصر بشكل تسلسلي أو خطي وترتبط ببعضها البعض. | في هذا الهيكل، يتم ترتيب العناصر بشكل هرمي أو بطريقة غير خطية. |
2 | أنواع | المصفوفات، القائمة المرتبطة، المكدس، قائمة الانتظار، وهي أنواع بنية البيانات الخطية. | الأشجار والرسوم البيانية هي أنواع هياكل البيانات غير الخطية. |
3 | التنفيذ | بسبب التنظيم الخطي، كودها سهل التنفيذ. | بسبب التنظيم غير الخطي، كودها يصعب تنفيذه. |
4 | المرور عبر جميع العناصر | نظرًا لأن بنية البيانات الخطية هي مستوى واحد، فهي تتطلب تشغيلًا واحدًا لاجتياز كل عنصر بيانات. | لا يمكن الوصول إلى عناصر البيانات في بنية البيانات غير الخطية في تشغيل واحد، يتطلب عدة أشواط لاجتياز جميع العناصر. |
5 | ترتيب | يتم إرفاق كل عنصر بيانات بالعناصر السابقة والتالية. | يتم إرفاق كل عنصر بالعديد من العناصر الأخرى. |
6 | المستويات | لا تحتوي بنية البيانات هذه على أي تسلسل هرمي، ويتم تنظيم جميع عناصر البيانات في مستوى واحد. | يتم ترتيب عناصر البيانات في مستويات متعددة. |
7 | استخدام الذاكرة | استخدام الذاكرة غير فعّال. | يتم استخدام الذاكرة بطريقة فعّالة للغاية. |
8 | يزداد التعقيد الزمني لهيكل البيانات الخطية مع زيادة حجم الإدخال. | غالبًا ما يظل التعقيد الزمني لهيكل البيانات غير الخطية كما هو مع زيادة حجم الإدخال. | |
9 | التطبيقات | تُستخدم هياكل البيانات الخطية بشكل أساسي لتطوير البرمجيات. | تُستخدم هياكل البيانات غير الخطية في معالجة الصور والذكاء الاصطناعي. |