ما هي بنية البيانات الخطية؟ وأوضح قائمة هياكل البيانات

نشرت: 2021-06-18

هياكل البيانات هي البيانات المهيكلة بطريقة للاستخدام الفعال من قبل المستخدمين. نظرًا لأن برنامج الكمبيوتر يعتمد بشكل كبير على البيانات ويتطلب أيضًا حجمًا كبيرًا من البيانات لأدائه ، لذلك من المهم للغاية ترتيب البيانات. يُعرف هذا الترتيب للبيانات في الهياكل المنظمة بهيكل البيانات.

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

أهم النقاط في بنية البيانات هي:

  • يتم تنظيم كمية كبيرة من البيانات من خلال كل نوع من أنواع هياكل البيانات.
  • مبدأ معين يتبعه كل هيكل بيانات.
  • يجب اتباع المبدأ الأساسي لهيكل البيانات حتى لو تم تنفيذ أي عمليات عبر بنية البيانات.

يمكن أن يتبع ترتيب البيانات داخل هيكل البيانات أوامر مختلفة. لذلك يتم تصنيف بنية البيانات وفقًا لطريقة ترتيب البيانات. في الأساس ، هناك نوعان من بنية البيانات .

  1. بنية البيانات البدائية
  2. بنية بيانات غير بدائية

يتضمن النوع الأولي لهيكل البيانات هياكل البيانات المحددة مسبقًا مثل char و float و int و double.

تُستخدم هياكل البيانات غير البدائية لتخزين مجموعة العناصر. يمكن تصنيف بنية البيانات هذه بشكل أكبر إلى

  1. بنية البيانات الخطية
  2. بنية البيانات غير الخطية.

قراءة: تعرف على الاختلافات بين بنية البيانات الخطية وغير الخطية

في هذه المقالة ، سنناقش بشكل أساسي بنية البيانات التي تخزن البيانات خطيًا.

جدول المحتويات

بنية البيانات الخطية

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

الخصائص

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

لذلك يمكن تلخيص هذه الهياكل كنوع من بنية البيانات حيث يتم تخزين العناصر بالتسلسل وتتبع الترتيب حيث:

  • يوجد عنصر أول واحد فقط يحتوي على عنصر تالٍ واحد .
  • يوجد عنصر أخير واحد فقط له عنصر سابق .
  • جميع العناصر الأخرى في بنية البيانات لها عنصر سابق وآخر تال

قائمة بنية البيانات في نوع خطي من بنية البيانات

1. صفيف

المصفوفة هي ذلك النوع من البنية الذي يخزن العناصر المتجانسة في مواقع الذاكرة المتجاورة. يتم تخزين نفس أنواع الكائنات بالتسلسل في مصفوفة. الفكرة الرئيسية للمصفوفة هي أنه يمكن تخزين بيانات متعددة من نفس النوع معًا. قبل تخزين البيانات في مصفوفة ، يجب تحديد حجم المصفوفة. يمكن الوصول إلى أي عنصر في المصفوفة أو تعديله ويتم فهرسة العناصر المخزنة لتحديد مواقعها.

يمكن شرح المصفوفة بمساعدة مثال بسيط لتخزين العلامات لجميع الطلاب في الفصل. لنفترض أن هناك 20 طالبًا ، ثم يجب ذكر حجم المصفوفة كـ 20. يمكن تخزين علامات جميع الطلاب في المصفوفة التي تم إنشاؤها دون الحاجة إلى إنشاء متغيرات منفصلة للعلامات لكل طالب. يمكن أن يؤدي اجتياز المصفوفة البسيط إلى الوصول إلى العناصر.

2. قائمة مرتبطة

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

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

هناك ثلاثة أنواع من القوائم المرتبطة:

  • قائمة مرتبطة واحدة: هذا النوع من البنية له عنوان أو مرجع العقدة التالية المخزنة في العقدة الحالية. لذلك ، العقدة التي تحتوي أخيرًا على العنوان والمرجع باعتبارها NULL. مثال: A-> B-> C-> D-> E-> NULL.
  • قائمة مزدوجة مرتبطة : كما يوحي الاسم ، تحتوي كل عقدة على مرجعين مرتبطين بها. مرجع واحد يوجه إلى العقدة السابقة بينما يشير المرجع الثاني إلى العقدة التالية. يمكن الاجتياز في كلا الاتجاهين حيث أن المرجع متاح للعقد السابقة. أيضا ، الوصول الصريح غير مطلوب للحذف. مثال: NULL <-A <-> B <-> C <-> D <-> E-> NULL.
  • قائمة مرتبطة دائرية: ترتبط العقد الموجودة في قائمة مرتبطة دائرية بطريقة تتشكل بها دائرة. نظرًا لأن القائمة المرتبطة دائرية ، فلا يوجد نهاية وبالتالي لا يوجد NULL. يمكن أن يتبع هذا النوع من القوائم المرتبطة بنية كلٍّ منهما بشكل فردي أو مزدوج. لا توجد عقدة بداية محددة وأي عقدة من البيانات يمكن أن تكون عقدة البداية. يشير مرجع العقدة الأخيرة إلى العقدة الأولى. مثال: أ-> ب-> ج-> د-> هـ.

خصائص القائمة المرتبطة هي:

    • وقت الوصول: O (n)
    • وقت البحث: O (n)
    • إضافة عنصر: O (1)
  • حذف عنصر: O (1)

3. المكدس

المكدس هو نوع آخر من الهياكل حيث تتبع العناصر المخزنة في بنية البيانات قاعدة LIFO (الوارد أخيرًا ، أولًا) أو FILO (First In Last Out). يرتبط نوعان من العمليات بمكدس ، أي الدفع والفرقعة. يتم استخدام الدفع عند إضافة عنصر إلى المجموعة واستخدام فرقعة عندما يتعين إزالة العنصر الأخير من المجموعة. يمكن إجراء الاستخراج للعنصر المضاف الأخير فقط.

خصائص المكدس هي:

  • إضافة عنصر: O (1)
  • حذف العنصر: O (1)
  • وقت الوصول: O (n) [أسوأ حالة]
  • يسمح طرف واحد فقط بإدراج عنصر وحذفه.

تتضمن أمثلة المكدس إزالة العودية. في السيناريوهات التي يجب فيها عكس الكلمة ، أو أثناء استخدام المحررين عندما تتم إزالة آخر كلمة تمت كتابتها أولاً (باستخدام عملية التراجع) ، يتم استخدام التكديس. إذا كنت ترغب في تجربة مشاريع بنية بيانات مثيرة للاهتمام ، انقر لقراءة هذه المقالة.

4. قائمة الانتظار

قائمة الانتظار هي نوع بنية البيانات حيث تتبع العناصر المراد تخزينها قاعدة First In First Out (FIFO). يتم اتباع الترتيب المعين لإجراء العمليات المطلوبة على العناصر. يكمن الاختلاف في قائمة الانتظار عن تلك الموجودة في المكدس في إزالة عنصر ، حيث تتم إزالة أحدث كائن مضاف أولاً في المكدس. بينما ، في حالة وجود قائمة انتظار ، تتم إزالة العنصر الذي تمت إضافته أولاً أولاً.

يتم استخدام كل من نهاية بنية البيانات لإدخال البيانات وإزالتها. العمليتان الرئيسيتان اللتان تحكمان هيكل قائمة الانتظار هما قائمة الانتظار ، و dequeue. يشير Enqueue إلى العملية التي يُسمح فيها بإدراج عنصر في جمع البيانات ويشير dequeue إلى العملية التي يُسمح فيها بإزالة العناصر ، وهو العنصر الأول في قائمة الانتظار في هذه الحالة.

خصائص قائمة الانتظار هي:

  • إدخال عنصر: O (1)
  • حذف عنصر: O (1)
  • وقت الوصول: O (n)

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

خاتمة

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

للحصول على عملية خالية من المتاعب ، من المهم دائمًا تنظيمها بحيث يمكن تنفيذ عمليات سهلة وفعالة بواسطة برامج الكمبيوتر. إذا تم تنظيم عناصر البيانات بترتيب تسلسلي ، فإنها تُعرف بهيكل البيانات الخطي بينما إذا تم ترتيب عناصر البيانات بطريقة غير خطية ، يُطلق عليها اسم بنية غير خطية.

لوحظ التطبيق الواسع لهيكل البيانات في لغات التعلم الآلي ، ومشاكل الحياة الواقعية ، وما إلى ذلك. يجب أن يكون الأشخاص ، الذين يحلمون بالعمل في هذا المجال ، قادرين على إتقان هذه المفاهيم.

إذا كنت ترغب في معرفة المزيد ، فتحقق من upGrad Executive PG Program in Data Science الذي يوفر منصة لتحويلك إلى علماء بيانات ناجحين. تم تصميم دورة علوم البيانات لأي متخصص في المستوى المتوسط ​​، وسوف تعرض لك جميع المعارف النظرية والعملية المطلوبة لنجاحك. فلماذا تنتظر خيارات أخرى عندما يكون النجاح على بعد نقرة واحدة. في حالة الحاجة إلى أي مساعدة ، يسعدنا مساعدتك.

ما هو الفرق بين هياكل البيانات الخطية وغير الخطية؟

يوضح ما يلي الاختلافات المهمة بين هياكل البيانات الخطية وغير الخطية:
بنية البيانات الخطية -
1. في هياكل البيانات الخطية ، يرتبط كل عنصر بشكل خطي ببعضه البعض مع الإشارة إلى العناصر التالية والسابقة.
2. التنفيذ سهل للغاية حيث يتم تضمين مستوى واحد فقط.
3. يعد إهدار الذاكرة أكثر شيوعًا في هياكل البيانات الخطية.
4. الأكوام وقوائم الانتظار والمصفوفات والقوائم المرتبطة كلها أمثلة على هياكل البيانات الخطية.
بنية البيانات غير الخطية -
1. في هياكل البيانات غير الخطية ، ترتبط العناصر بطريقة هرمية.
2. التنفيذ أكثر تعقيدًا نظرًا لوجود مستويات متعددة.
3. يتم استهلاك الذاكرة بحكمة ولا يكاد يكون هناك إهدار للذاكرة.
4. الرسوم البيانية والأشجار هي أمثلة على هياكل البيانات غير الخطية.

ما هي الطرق التي تعتبر بها القوائم المرتبطة أكثر كفاءة من المصفوفات؟

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

ما هي العمليات الأكثر شيوعًا التي يتم إجراؤها في هياكل البيانات الخطية؟

تشمل العمليات المحتملة الشائعة التي يمكن إجراؤها في جميع هياكل البيانات الخطية العبور والإدخال والحذف والتعديل وعملية البحث وعملية الفرز.
يتم التعرف على هذه العمليات بأسماء مختلفة في هياكل البيانات المختلفة. على سبيل المثال ، تُعرف عمليات الإدراج والحذف باسم عمليات Push and Pop في Stack ، بينما يشار إليها باسم عمليات enqueue و dequeue في قائمة الانتظار.
يمكن أن يكون هناك بعض العمليات الأخرى مثل الدمج والعملية الفارغة للتحقق مما إذا كانت بنية البيانات فارغة أم لا.