ثريد عن الـ Data Structures

 ثريد عن الـ Data Structures

هيكل البيانات هو تنسيق متخصص لتنظيم ومعالجة واسترجاع وتخزين البيانات. هناك عدة أنواع أساسية ومتقدمة من هياكل البيانات ، وكلها مصممة لترتيب البيانات لتناسب غرضًا معينًا.
تسهل هياكل البيانات على المستخدمين الوصول إلى البيانات التي يحتاجون إليها والعمل معها بطرق مناسبة. الأهم من ذلك ، أن هياكل البيانات تؤطر تنظيم المعلومات بحيث يمكن للآلات والبشر فهمها بشكل أفضل.
في علوم الكمبيوتر وبرمجة الكمبيوتر ، يمكن اختيار بنية البيانات أو تصميمها لتخزين البيانات بغرض استخدامها مع خوارزميات مختلفة. في بعض الحالات ، ترتبط العمليات الأساسية للخوارزمية ارتباطًا وثيقًا بتصميم بنية البيانات.
تحتوي كل بنية بيانات على معلومات حول قيم البيانات والعلاقات بين البيانات - وفي بعض الحالات - الوظائف التي يمكن تطبيقها على البيانات.
على سبيل المثال ، في لغة البرمجة الكائنية ، ترتبط بنية البيانات والأساليب المرتبطة بها معًا كجزء من تعريف الفئة. في اللغات غير الموجهة للكائنات ، قد تكون هناك وظائف محددة للعمل مع بنية البيانات ، لكنها ليست جزءًا تقنيًا من بنية البيانات.
لماذا تعتبر هياكل البيانات مهمة؟ أنواع البيانات الأساسية النموذجية ، مثل الأعداد الصحيحة أو قيم الفاصلة العائمة ، المتوفرة في معظم لغات برمجة الكمبيوتر غير كافية بشكل عام لالتقاط الهدف المنطقي لمعالجة البيانات واستخدامها.
ومع ذلك فإن التطبيقات التي تستوعب المعلومات وتعالجها وتنتجها يجب أن تفهم كيفية تنظيم البيانات لتبسيط المعالجة تجمع هياكل البيانات بين عناصر البيانات بطريقة منطقية وتسهل الاستخدام الفعال واستمرار ومشاركة البيانات أنها توفر نموذجا رسميا يصف الطريقة التي يتم بها تنظيم عناصر البيانات
هياكل البيانات هي اللبنات الأساسية لتطبيقات أكثر تعقيدًا. تم تصميمها عن طريق تكوين عناصر البيانات في وحدة منطقية تمثل نوع بيانات مجردة له صلة بالخوارزمية أو التطبيق.
مثال على نوع بيانات مجردة هو "اسم العميل" الذي يتكون من سلاسل الأحرف لـ "الاسم الأول" و "الاسم الأوسط" و "الاسم الأخير"
ليس من المهم فقط استخدام هياكل البيانات ، ولكن من المهم أيضًا اختيار بنية البيانات المناسبة لكل مهمة. قد يؤدي اختيار بنية بيانات غير مناسبة إلى أوقات تشغيل بطيئة أو رمز غير مستجيب. تتضمن خمسة عوامل يجب مراعاتها عند اختيار بنية بيانات ما يلي:
ما نوع المعلومات التي سيتم تخزينها؟ كيف سيتم استخدام هذه المعلومات؟ أين يجب أن تبقى البيانات ، أو يتم الاحتفاظ بها ، بعد إنشائها؟ ما هي أفضل طريقة لتنظيم البيانات؟ ما هي جوانب إدارة حجز الذاكرة والتخزين التي يجب مراعاتها؟
كيف يتم استخدام هياكل البيانات؟ بشكل عام ، تُستخدم هياكل البيانات لتنفيذ الأشكال المادية لأنواع البيانات المجردة. تعد هياكل البيانات جزءًا أساسيًا من تصميم البرامج الفعالة. كما أنها تلعب دورًا مهمًا في تصميم الخوارزميات وكيفية استخدام تلك الخوارزميات في برامج الكمبيوتر.
مكنت لغات البرمجة المبكرة - مثل Fortran و C و C ++ - المبرمجين من تحديد هياكل البيانات الخاصة بهم. اليوم ، تتضمن العديد من لغات البرمجة مجموعة واسعة من هياكل البيانات المضمنة لتنظيم التعليمات البرمجية والمعلومات. على سبيل المثال ، قوائم وقواميس Python ومصفوفات وكائنات JavaScript
هي هياكل تشفير شائعة تُستخدم لتخزين المعلومات واستردادها. يستخدم مهندسو البرمجيات الخوارزميات المقترنة بإحكام بهياكل البيانات - مثل القوائم وقوائم الانتظار والتعيينات من مجموعة قيم إلى أخرى. يمكن دمج هذا النهج في مجموعة متنوعة من التطبيقات ،
بما في ذلك إدارة مجموعات السجلات في قاعدة بيانات علائقية وإنشاء فهرس لتلك السجلات باستخدام بنية بيانات تسمى شجرة ثنائية. تتضمن بعض الأمثلة حول كيفية استخدام هياكل البيانات ما يلي:
تخزين البيانات. تُستخدم هياكل البيانات لاستمرارية البيانات بكفاءة ، مثل تحديد مجموعة السمات والهياكل المقابلة المستخدمة لتخزين السجلات في نظام إدارة قاعدة البيانات. إدارة الموارد والخدمات. يتم تمكين موارد وخدمات نظام التشغيل الأساسي (OS) من خلال استخدام هياكل البيانات
مثل القوائم المرتبطة لتخصيص الذاكرة وإدارة دليل الملفات وأشجار بنية الملفات ، بالإضافة إلى قوائم انتظار جدولة العمليات. تبادل البيانات. تحدد هياكل البيانات تنظيم المعلومات المشتركة بين التطبيقات ، مثل حزم TCP / IP.
الترتيب والفرز. توفر هياكل البيانات مثل أشجار البحث الثنائية - المعروفة أيضًا باسم الشجرة الثنائية المرتبة أو المصنفة - طرقًا فعالة لفرز الكائنات ، مثل سلاسل الأحرف المستخدمة كعلامات. باستخدام هياكل البيانات مثل قوائم الانتظار ذات الأولوية
يمكن للمبرمجين إدارة العناصر المنظمة وفقًا لأولوية معينة. الفهرسة. يتم استخدام هياكل البيانات الأكثر تعقيدًا مثل B-tree لفهرسة الكائنات ، مثل تلك المخزنة في قاعدة بيانات.
يبحث. تعمل الفهارس التي تم إنشاؤها باستخدام أشجار البحث الثنائية أو الأشجار B أو جداول التجزئة على تسريع القدرة على العثور على عنصر محدد مطلوب. قابلية التوسع. تستخدم تطبيقات البيانات الكبيرة هياكل البيانات لتخصيص وإدارة تخزين البيانات عبر مواقع التخزين
الموزعة ، مما يضمن قابلية التوسع والأداء. توفر بعض بيئات برمجة البيانات الضخمة - مثل Apache Spark - هياكل بيانات تعكس البنية الأساسية لسجلات قاعدة البيانات لتبسيط الاستعلام. خصائص هياكل البيانات غالبًا ما يتم تصنيف هياكل البيانات حسب خصائصها. الخصائص الثلاث التالية أمثلة:
خطي أو غير خطي. تصف هذه الخاصية ما إذا كانت عناصر البيانات مرتبة بترتيب تسلسلي ، مثل مصفوفة ، أو في تسلسل غير مرتب ، مثل الرسم البياني. متجانسة أو غير متجانسة. تصف هذه الخاصية ما إذا كانت جميع عناصر البيانات في مستودع معين من نفس النوع.
أحد الأمثلة على ذلك هو مجموعة من العناصر في مصفوفة ، أو من أنواع مختلفة ، مثل نوع بيانات مجردة مُعرَّف على أنه بنية في C أو مواصفات فئة في Java. ثابت أو ديناميكي. تصف هذه الخاصية كيفية تجميع هياكل البيانات.
هياكل البيانات الثابتة لها أحجام وهياكل ومواقع ذاكرة ثابتة في وقت الترجمة. هياكل البيانات الديناميكية لها أحجام وهياكل ومواقع ذاكرة يمكن أن تتقلص أو تتوسع ، حسب الاستخدام. أنواع البيانات إذا كانت هياكل البيانات هي اللبنات الأساسية للخوارزميات وبرامج الكمبيوتر ،
فإن أنواع البيانات البدائية - أو الأساسية - هي اللبنات الأساسية لهياكل البيانات. تتضمن أنواع البيانات الأساسية النموذجية ما يلي: Boolean ، الذي يخزن القيم المنطقية سواء كانت صحيحة أو خاطئة. عدد صحيح ، والذي يخزن نطاقًا على الأعداد الصحيحة الرياضية - أو أرقام العد.
تحتوي الأعداد الصحيحة ذات الأحجام المختلفة على نطاق مختلف من القيم - على سبيل المثال ، عدد صحيح 8 بت يحمل قيمًا من -128 إلى 127 ، وعدد صحيح طويل 32 بت يحمل قيمًا من 0 إلى 4،294،967،295. أرقام الفاصلة العائمة ، والتي تخزن تمثيلاً معادلاً للأرقام الحقيقية.
أرقام النقطة الثابتة ، والتي تُستخدم في بعض لغات البرمجة وتحمل قيمًا حقيقية ولكنها تدار كأرقام على يسار ويمين العلامة العشرية. الحرف ، الذي يستخدم الرموز من تعيين محدد لقيم الأعداد الصحيحة إلى الرموز. المؤشرات ، وهي قيم مرجعية تشير إلى قيم أخرى.
سلسلة ، وهي مصفوفة من الأحرف متبوعة برمز إيقاف - عادةً قيمة "0" - أو تتم إدارتها باستخدام حقل طول يمثل قيمة عدد صحيح. يوضح التسلسل الهرمي لبنية البيانات كيفية ارتباط أنواع البيانات وهياكل البيانات. أنواع هياكل البيانات يتم تحديد نوع بنية البيانات المستخدمة في حالة معينة حسب
نوع العمليات المطلوبة أو أنواع الخوارزميات التي سيتم تطبيقها. تشمل أنواع هياكل البيانات المختلفة ما يلي: مجموعة مصفوفة. تخزن المصفوفة مجموعة من العناصر في مواقع الذاكرة المجاورة. يتم تخزين العناصر التي هي من نفس النوع معًا بحيث يمكن حساب موضع كل عنصر أو استرجاعه بسهولة بواسطة
فهرس. يمكن أن تكون المصفوفات ثابتة أو مرنة في الطول. يمكن أن تحتوي المصفوفة على مجموعة من الأعداد الصحيحة أو أرقام الفاصلة العائمة أو اللسعات أو حتى المصفوفات الأخرى. كومة. يخزن المكدس مجموعة من العناصر بالترتيب الخطي الذي يتم تطبيق العمليات عليه. يمكن أن يكون هذا الطلب يرد
أخيرًا يصرف أولاً (LIFO) أو ما يرد أولاً يصرف أولاً (FIFO). طابور. قائمة الانتظار تخزن مجموعة من العناصر مثل المكدس ؛ ومع ذلك ، يمكن فقط أن يكون ترتيب العملية أول ما يرد أولاً يصرف أولاً. قائمة مرتبطة. تقوم القائمة المرتبطة بتخزين مجموعة من العناصر بترتيب خطي.
يحتوي كل عنصر أو عقدة في قائمة مرتبطة على عنصر بيانات ، بالإضافة إلى مرجع أو ارتباط إلى العنصر التالي في القائمة. هياكل بيانات القائمة المرتبطة هي مجموعة من العقد التي تحتوي على البيانات والعنوان أو المؤشر إلى العقدة التالية.
شجرة. تخزن الشجرة مجموعة من العناصر بطريقة مجردة وهرمية. ترتبط كل عقدة بقيمة مفتاح ، مع العقد الأصلية المرتبطة بالعقد الفرعية - أو العقد الفرعية. هناك عقدة جذر واحدة هي سلف جميع العقد في الشجرة. شجرة البحث الثنائية هي مجموعة من العقد حيث لكل منها قيمة ويمكن أن تشير إلى عقدتين
كومة. الكومة هي بنية قائمة على الشجرة تكون فيها قيمة المفتاح المقترن بالعقدة الأصلية أكبر من أو تساوي القيم الأساسية لأي من قيم المفاتيح التابعة لها. رسم بياني. يخزن الرسم البياني مجموعة من العناصر بطريقة غير خطية. تتكون الرسوم البيانية من مجموعة محدودة من العقد
تُعرف أيضًا بالرؤوس ، والخطوط التي تربطها ، وتُعرف أيضًا باسم الحواف. هذه مفيدة لتمثيل أنظمة العالم الحقيقي مثل شبكات الكمبيوتر. تري. المثلث ، المعروف أيضًا باسم شجرة الكلمات الرئيسية ، هو بنية بيانات تخزن السلاسل كعناصر بيانات يمكن تنظيمها في رسم بياني مرئي.
جدول تجزئة. يخزن جدول التجزئة - المعروف أيضًا باسم خريطة التجزئة - مجموعة من العناصر في مصفوفة ترابطية ترسم مفاتيح القيم. يستخدم جدول التجزئة دالة تجزئة لتحويل فهرس إلى مجموعة من المجموعات التي تحتوي على عنصر البيانات المطلوب.
التجزئة هي تقنية بنية البيانات حيث يتم تحويل القيم الأساسية إلى فهارس مصفوفة حيث يتم تخزين البيانات. تعتبر هذه هياكل بيانات معقدة لأنها يمكن أن تخزن كميات كبيرة من البيانات المترابطة.
كيفية اختيار هيكل البيانات عند اختيار بنية بيانات لبرنامج أو تطبيق ، يجب على المطورين مراعاة إجابات الأسئلة الثلاثة التالية: العمليات المدعومة. ما هي الوظائف والعمليات التي يحتاجها البرنامج؟ التعقيد الحسابي. ما هو مستوى الأداء الحسابي المسموح به؟ بالنسبة للسرعة ستكون بنية
البيانات التي يتم تنفيذ عملياتها في الوقت الخطي لعدد العناصر المُدارة - باستخدام تدوين Big O: O (n) - أسرع من بنية البيانات التي يتم تنفيذ عملياتها في الوقت المناسب بما يتناسب مع مربع الرقم من العناصر المُدارة - O (n ^ 2). أناقة البرمجة.
هل تنظيم هيكل البيانات وواجهته الوظيفية سهل الاستخدام؟ تتضمن بعض الأمثلة الواقعية ما يلي: تعتبر القوائم المرتبطة هي الأفضل إذا كان البرنامج يدير مجموعة من العناصر التي لا تحتاج إلى طلب ، ويلزم وقت ثابت لإضافة عنصر أو إزالته من المجموعة وزيادة وقت البحث أمر جيد.
تكون الأكوام هي الأفضل إذا كان البرنامج يدير مجموعة تحتاج إلى دعم طلب LIFO. يجب استخدام قوائم الانتظار إذا كان البرنامج يدير مجموعة تحتاج إلى دعم طلب ما يرد أولاً يصرف أولاً (FIFO). تعتبر الأشجار الثنائية جيدة لإدارة مجموعة من العناصر ذات العلاقة بين الوالدين والطفل ، مثل شجرة
العائلة. تعتبر أشجار البحث الثنائية مناسبة لإدارة مجموعة مرتبة حيث يكون الهدف هو تحسين الوقت المستغرق للعثور على عناصر محددة في المجموعة. تعمل الرسوم البيانية بشكل أفضل إذا كان التطبيق سيحلل الاتصال والعلاقات بين مجموعة من الأفراد

أحدث أقدم

Ads