بنى البياناتبنية بيانات
في علوم الحاسوب، بُنى البيانات أو هياكل البيانات[1] هو تنسيق تنظيم وإدارة وتخزين البيانات التي تتيح الوصول والتعديل الفعال.[2][3][4] بتعبير أدق، هيكل البيانات عبارة عن مجموعة من قيم البيانات، والعلاقات فيما بينها، والوظائف أو العمليات التي يمكن تطبيقها على البيانات،[5] أي أنها بنية جبرية حول البيانات. استخدامهاتعمل بنى البيانات كأساس لأنواع البيانات المجردة (ADT). تحدد ADT الشكل المنطقي لنوع البيانات. تنفذ بنية البيانات الشكل المادي لنوع البيانات.[6] تتناسب أنواع مختلفة من بنى البيانات مع أنواع مختلفة من التطبيقات ، وبعضها شديد التخصص لمهام محددة. على سبيل المثال ، عادةً ما تستخدم قواعد البيانات العلائقية فهارس بي - تري لاسترداد البيانات،[7] بينما تستخدم تطبيقات المجمّع عادةً جداول التلبيد للبحث عن المعرّفات.[8] توفر بنى البيانات وسيلة لإدارة كميات كبيرة من البيانات بكفاءة لاستخدامات مثل قواعد البيانات الكبيرة وخدمات فهرسة الإنترنت. عادةً ما تكون بنى البيانات الفعالة هي المفتاح لتصميم خوارزميات فعالة. تؤكد بعض طرق التصميم الرسمية ولغات البرمجة على بنى البيانات ، بدلاً من الخوارزميات ، كعامل تنظيم رئيسي في تصميم البرامج. يمكن استخدام بنى البيانات لتنظيم تخزين واسترجاع المعلومات المخزنة في كل من الذاكرة الرئيسية والذاكرة الثانوية.[9] التنفيذتعتمد بنى البيانات بشكل عام على قدرة الحاسوب على جلب البيانات وتخزينها في أي مكان في ذاكرته، محددًا بمؤشر - سلسلة بت، تمثل عنوان الذاكرة، يمكن تخزينها في الذاكرة ومعالجتها بواسطة البرنامج. وبالتالي، تستند بنى بيانات المصفوفة والتسجيل إلى حساب عناوين عناصر البيانات بالعمليات الحسابية، بينما تعتمد بنى البيانات المرتبطة على تخزين عناوين عناصر البيانات داخل الهيكل نفسه. يتطلب تنفيذ بنية البيانات عادةً كتابة مجموعة من الإجراءات التي تنشئ وتتعامل مع مثيلات ذلك الهيكل. لا يمكن تحليل كفاءة بنية البيانات بشكل منفصل عن تلك العمليات. تحفز هذه الملاحظة المفهوم النظري لنوع البيانات المجردة، وهيكل البيانات الذي يتم تحديده بشكل غير مباشر من خلال العمليات التي يمكن إجراؤها عليه، والخصائص الرياضية لتلك العمليات (بما في ذلك تكلفة المكان والزمان). أمثلةهناك أنواع عديدة من بنى البيانات، مبنية بشكل عام على أنواع بينات أولية أبسط:
بالإضافة إلى ذلك، تعد الرسوم البيانية والأشجار الثنائية بنى بيانات أخرى شائعة الاستخدام. دعم اللغةتفتقر معظم لغات التجميع وبعض اللغات منخفضة المستوى، مثل BCPL (Basic Combined Programming Language)، إلى الدعم المدمج لبنى البيانات. من ناحية أخرى، فإن العديد من لغات البرمجة عالية المستوى وبعض لغات التجميع عالية المستوى، مثل MASM، لها بناء جملة خاص أو دعم آخر مدمج لبنى بيانات معينة، مثل السجلات والمصفوفات. على سبيل المثال، تدعم لغات C (سليل مباشر لـ BCPL) وباسكال البنيات والسجلات، على التوالي، بالإضافة إلى المتجهات (المصفوفات أحادية البعد) والمصفوفات متعددة الأبعاد. تتميز معظم لغات البرمجة بنوع من آلية المكتبة التي تسمح بإعادة استخدام تطبيقات بنية البيانات بواسطة برامج مختلفة. تأتي اللغات الحديثة عادةً مع مكتبات قياسية تقوم بتنفيذ هياكل البيانات الأكثر شيوعًا. الأمثلة هي مكتبة القوالب المعيارية C ++، وإطار عمل مجموعات Java، ومايكروسوفت .NET Framework. تدعم اللغات الحديثة بشكل عام البرمجة التركيبية، والفصل بين واجهة وحدة المكتبة وتنفيذها. يوفر البعض أنواع بيانات غير شفافة تسمح للعملاء بإخفاء تفاصيل التنفيذ. عادةً ما تستخدم لغات البرمجة الموجهة للكائنات، مثل C ++ وJava وSmalltalk، فئات لهذا الغرض. العديد من بنى البيانات المعروفة لها إصدارات متزامنة تسمح لخيوط حوسبة متعددة بالوصول إلى مثيل واحد ملموس لهيكل البيانات في وقت واحد. مبادئ أساسيةان بنى البيانات تستند عموما على قدرة الكمبيوتر على جلب وتخزين البيانات في أي مكان في الذاكرة، وتحدد بواسطة عنوان - سلسلة بت من المكن هي نفسها تخزين في الذاكرة وتعالج بواسطة البرنامج. وهكذا فإن السجل ومصفوفة هياكل البيانات تقوم على حساب عناوين البيانات بواسطة العمليات الحسابية، في حين تستند هياكل البيانات المرتبطة على عناوين تخزين عناصر البيانات داخل الهيكل نفسه. العديد من بنى البيانات تستخدم كلا المبدئين جنبا إلى جنب، وفي بعض الأحيان تجمع بطرق غير تافهة (كما في ربط اكس اور (XOR linking)). انظر أيضًاالمراجع
|