ما هي هياكل البيانات: التعريف والأنواع وكل ما يجب معرفته

أنواع هياكل البيانات في بايثون ما هي والخوارزميات

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

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

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

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

ما هي تصنيفات هيكل البيانات؟

فيما يلي تصنيفات بنية البيانات:

# 1. الخطي وغير الخطي

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

# 2. ديناميكي وثابت

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

# 3. الدول غير المتجانسة والمتجانسة

هياكل البيانات المتجانسة هي مجموعات من العناصر التي لها نفس نوع البيانات ، مثل المصفوفة. لا يلزم أن تكون البيانات الموجودة في الهياكل غير المتجانسة جميعها من نفس النوع.

أنواع هياكل البيانات

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

# 1. المصفوفات

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

# 2. الأكوام

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

# 3. هياكل البيانات الخطية

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

# 4. هياكل بيانات الشجرة

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

# 5. قوائم الانتظار

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

# 6. القوائم المرتبطة

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

# 7. تخطي القوائم

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

# 8. الرسوم البيانية

الرسوم البيانية هي نوع خاص من القوائم غير المرتبة التي يمكن استخدامها لوصف الشبكات. وهي مكونة من "عقد" فردية والروابط (أو "الحواف") بينها. في هذه التصميمات ، يتم استخدام X و Y كزوج ، مع ربط رأس X بـ Y. كما تساعد الرسوم البيانية الباحثين على فحص الشبكات المعقدة مثل شوارع المدينة والتفاعلات الاجتماعية عبر الإنترنت.

# 9. يحاول

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

# 10. جداول تجزئة

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

هياكل البيانات والخوارزميات

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

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

هياكل البيانات في بايثون

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

هناك خمسة هياكل بيانات موجودة مسبقًا في Python ، وكلها مفيدة لأسباب مختلفة. فيما يلي هياكل البيانات في Python:

# 1. قائمة

القائمة هي قائمة عناصر مرتبة ديناميكيًا. كما أنه قادر على تخزين أي بنية بيانات ، بما في ذلك الأرقام وقيم الفاصلة العائمة والنصوص والقوائم الأخرى والمجموعات والقواميس والمزيد. يمكنك أيضًا استخدام الأقواس المربعة ([]) أو مُنشئ القائمة () لإنشاء قائمة فارغة جديدة.

# 2. مترابطة بيانية

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

# 3. تعيين 

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

# 4. فروزينسيت

المجموعة المجمدة هي مجرد مجموعة لا يمكن تغييرها بأي شكل من الأشكال. إنها تعمل ولها نفس خصائص المجموعات ، لكن لا يمكن تغييرها بأي شكل من الأشكال. نتيجة لذلك ، لا يمكن تطبيق الطفرات المحددة مثل add () و update () وما إلى ذلك على مجموعات التجميد. يمكن استخدام مجموعات Frozensets ، نظرًا لثباتها ، كمفاتيح في القواميس أو كعناصر في مجموعة أخرى أو مجموعة frozenset.

يمكن استخدام الدالة frozenset () مباشرة لإنتاج مجموعة frozenset ، أو يمكن استخدام كائن آخر قابل للتكرار كوسيطة لإنشاء مجموعة frozenset من سلسلة أو قائمة أو مجموعة أو مجموعة.

# 5. قاموس

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

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

لماذا تعتبر هياكل البيانات مهمة؟

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

كيف تُستخدم هياكل البيانات؟

تُستخدم هياكل البيانات لتنفيذ الأشكال الملموسة لأنواع البيانات المجردة. تعد هياكل البيانات جزءًا أساسيًا من أي برنامج جيد التصميم. كما أنها ضرورية لتطوير البرمجيات وتنفيذ الخوارزميات. فيما يلي طرق استخدام هياكل البيانات:

# 1. الاستمرار في التسجيل

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

# 2. إدارة الموارد والخدمات

تعتمد موارد وعمليات نظام التشغيل الأساسي (OS) على هياكل البيانات مثل القوائم المرتبطة لتخصيص الذاكرة وإدارة دليل الملفات وأشجار بنية الملفات وقوائم انتظار جدولة العمليات.

# 3. تبادل البيانات

تُستخدم هياكل البيانات لتنظيم البيانات التي يتم توصيلها بين التطبيقات ، مثل حزم TCP / IP.

# 4. الترتيب والفرز

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

# 5. الفهرسة

تُستخدم هياكل البيانات الأكثر تعقيدًا ، مثل أشجار B ، لفهرسة الأشياء ، بما في ذلك تلك المخزنة في قاعدة بيانات.

# 6. يبحث

من الشائع إنشاء فهارس باستخدام أشجار B أو جداول التجزئة أو أشجار البحث الثنائية لتسريع البحث عن عنصر معين.

# 7. قابلية التوسع

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

اختيار هيكل البيانات

فيما يلي طرق لاختيار بنية البيانات:

# 1. العمليات المدعومة

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

# 2. تعقيد الحساب

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

# 3. الترميز الأنيق

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

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

ما هي هياكل البيانات للدمى؟

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

ما هي بنية البيانات الأكثر شيوعًا؟

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

ما هو أبسط بنية بيانات؟

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

المصفوفة أحادية البعد (الخطية) هي أبسط بنية بيانات ، حيث يتم تخزين العناصر والوصول إليها بواسطة فهارس أعداد صحيحة متتالية.

افكار اخيرة

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

مراجع حسابات

اترك تعليق

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

قد يعجبك أيضاً
حلول المحاكاة الافتراضية
تفاصيل أكثر

حلول التخيل: نصائح مجانية يجب أن تعرفها في عام 2023

جدول المحتويات إخفاء ما هو حل الافتراضية؟ حلول المحاكاة الافتراضية للخوادم حلول التخزين الافتراضية حلول المحاكاة الافتراضية للشبكات حلول المحاكاة الافتراضية لسطح المكتب ما هي ...