Linear List | تراكيب بيانات 2


بسم الله الرحمن الرحيم


المجموعة الخطية – Linear List 


المجموعة الخطية – Linear List :

هي عبارة عن سلسلة من البيانات مرتبطة مع بعضها البعض بطريقة معينة لسرعة الوصول للبيانات المطلوبة عند البحث
عنها.

من أمثلتها:

المصفوفات – Arrays ، و المجموعة المرتبطة – Linked List .

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

Linear List:

1-عامة \ General

a.  غير منظمة \ Unordered 
b.منظمة \ Order 

 2- خاصة \ Restricted

a. طابور \ FIFO/Queue
b. مكدس \ LIFO/Stack

المجموعة العامة – General List :

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

المجموعة الخاصة – Restricted List :

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

المجموعة العشوائية – Random List :

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

المجموعة المنظمة – Ordered List :

البيانات في المجموعة تكون منظمة باستخدام مفتاح معين ليميز كل عنصر في المجموعة عن العنصر الآخر و يمكن
يكون أكثر من شكل.

مجموعة الطابور – Queue :

FIFO تدل على First In First Out أي أن الأولوية لتنفيذ العملية لأول من يطلبها و عادة تسمى ب Queue .

مجموعة المكدس – Stack :

LIFO تدل على Last In First Out أي أن الأولوية لتنفيذ العملية لآخر من يطلبها و تسمى عادة ب Stack.

المجموعة المرتبطة - Linked List :

هي عبارة عن مجموعة من البيانات المنظمة، كل عنصر فيها يمكن من خلاله الوصول للعنصر الذي يليه.

المجموعة المرتبطة البسيطة - Singly Linked List :

هي التي تحتوي على رابط وحيد لعنصر التالي فقط الذي يسمى بـ (Successor).

مكونات العنصر الواحد:

1- البيانات - Data : لاستعمال المعلومات  في العمليات.
2- الارتباط - Link : للتمكن من التأشير و الارتباط بالعنصر التالي للمجموعة فتصبح كالسلسلة.

العنصر في Linked List z يسمى بـ Node.

Node : يحتوي على مؤشر يؤشر لـ class object لنفس نوع class .

ايجابيات المجموعة المرتبطة :

- سهولة إضافة و حذف البيانات.
- عدم الحاجة لإزاحة العنصر لليسار لكي يتاح مكان لإضافة أو حذف عنصر من المجموعة.

سلبيات المجموعة المرتبطة:

البحث فيه يكون على شكل Sequential.

تركيب البيانات في المجموعة المرتبطة:

- مؤشر الرأس (Head pointer) :

هو عبارة عن مؤشر يؤشر لبداية المجموعة يحتوي على مؤشر الارتباط لكي يتمكن من التأشير لـ Node الأول من المجموعة.

*تنبيه:

احرص دائماً على وضع قيمة لمؤشرالارتباط (Link pointer) قيمة معينة إن لم يكن هناك قيمة اسند لها قيمة NULL.

تركيب البيانات لـالعنصر  (Node) :

تحديد نوع البيانات للمجموعة بالعتماد على البيانات المدخلة للتطبيق.

تركيب رأس العنصر (Head Node) :

يحتوي على مؤشر الرأس و Metadata أي البيانات عن المجموعة، مثل: عدد العناصر Cout, مؤشر لآخر عنصر، ... إلخ.


تعليقات

المشاركات الشائعة من هذه المدونة

قصر بن عقيِل

ما هو علوم الحاسب؟! || What is the Computer Science

طريقة عمل قبعة شتوية بالكروشية