الآلات المجردة

 

جداول

قوائم

قوائم ثنائية الاتجاه

صفوف 

أكوام

أشجار البحث الثنائية

أشجار البحث المتعددة

بنى

ملفات

 

تعريف :

جدول من البعد ن يمكن اعتباره تطبيقا للمجموعة م= [1, أقصى1 ] في [1, أقصى 2]..... في [1, أقصى ن] إلى مجموعة من القيم.
وبالتالي ، فإن الجدولـ هو مجموعة من الأزواج (دليل1, أ), (دليل2, ب), .....، (دليل ، هـ) التي تسمى عناصرها الأولى الأدلة وتنتمي إلى المجموعة م.
تتكون الآلة المجردة البسيطة على الجداول من العمل فقط على عنصر ، أي استشارته أو تعديله. بالإضافة إلى ذلك ، يمكن أن تكون الجداول ثابتة أو ديناميكية.

عمليات :

عنصر( ج [ب، ج، ...] ) : الحصول على العنصر ج[ب، ع، ...] للجدول ج.

ضع_عنصر( ج[ب، ج، ...], ق) : تخصيص القيمة ق إلى العنصر ج[ب، ع، ...] للجدول ج.

احجز_جدول(ج) : حجز جدول.

سرح_جدول(ج) : تسريح جدول.

تعريف :

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

احجز_خلية( ق) : حجز خلية مع المعطية ق و إرجاع عنوان العقدة.

سرح( ق) :  تسريح الخلية بعنوان ق.

تالي( ق) :  الحصول على الحقل "عنوان يمين" للعقدة المشار إليها بواسطة ق.

قيمة_خلية( ق) : الحصول على الحقل "قيمة" للعقدة المشار إليها بواسطة ق.

ضع_عنوان( ق, ل) : تخصيص العنوان ل إلى الحقل "عنوان" للعقدة المشار إليها بواسطة ق.

ضع_قيمة_خلية( ق, قيمة) : تخصيص القيمة قيمة إلى الحقل "قيمة" للعقدة المشار إليها بواسطة ق.

تعريف :

القائمة ثنائية الاتجاه هي قائمة مرتبطة يمكن اجتيازها في كلا الاتجاهين. يتم تعريف آلة مجردة في القوائم ثنائية الاتجاه بنفس الطريقة التي يتم تعريفها في القوائم المرتبطة ، باستثناء الارتباط بدلا من احتواء عنوان واحد ، فإنه يحتوي على عنوانين. وبناء على ذلك ، فإننا نستبدل وظيفة "ضع_عنوان" مع "ضع_عنوان_يمين" و "ضع_عنوان_يسار" على سبيل المثال وإضافة الدالة "سابق".

عمليات :

احجز_خلية( ق) : حجز خلية مع المعطية ق و إرجاع عنوان العقدة.

سرح( ق) : تسريح الخلية بعنوان ق.

تالي( ق) : الحصول على الحقل "عنوان يمين" للعقدة المشار إليها بواسطة ق.

سابق( ق) : الحصول على الحقل "عنوان يسار" للعقدة المشار إليها بواسطة ق.

قيمة_خلية( ق) : الحصول على الحقل "قيمة" للعقدة المشار إليها بواسطة ق.

ضع_قيمة_خلية( ق, قيمة) : تخصيص القيمة قيمة إلى الحقل "قيمة" للعقدة المشار إليها بواسطة ع.

ضع_عنوان_يمين( ق, ل) : تخصيص العنوان ل إلى الحقل "عنوان يمين" للعقدة المشار إليها بواسطة ق.

ضع_عنوان_يسار( ق, ل) : تخصيص العنوان ل إلى الحقل "عنوان يسار" للعقدة المشار إليها بواسطة ق.

 

تعريف :

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

عمليات :

احجز_صف( ص) : حجز صف فارغ.

صف_فارغ( ص) : تحقق مما كان الصف فارغ.

ضف_صف( ص, ق) : إظافة القيمة ق الى ذيل الصف ص.

نزع_صف( ص, ق) : انسحاب القيمة الموجودة فى رأس الصف ص و جعلها في المتغير ق.

تعريف :

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

عمليات :

احجز_كومة( ك) : حجز كومة فارغة.

كومة_فارغة( ك) : تحقق مما كانت الكومة فارغة.

ضف_كومة( ك, ق) : إظافة القيمة ق الى قمة الكومة ك.

نزع_كومة( ك, ق) : انسحاب القيمة الموجودة فى قمة الكومة ك و جعلها في المتغير ق.

تعريف :

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

عمليات :

احجز_عقدة( ق) : حجز عقدة مع المعطية ق و إرجاع عنوان العقدة. تخصيص "لا شيء" إلى الحقول الأخرى للعقدة.

سرح_عقدة( ع) : تسريح العقدة بعنوان ع

إبن_يسار( ع) : الحصول على الحقل "إبن_يسار" للعقدة المشار إليها بواسطة ع .

إبن_يمين( ع) : الحصول على الحقل "إبن_يمين" للعقدة المشار إليها بواسطة ع .

أب( ع) : الحصول على الحقل "أب" للعقدة المشار إليها بواسطة ع.

قيمة_عقدة( ع) : الحصول على الحقل "قيمة" للعقدة المشار إليها بواسطة ع.

ضع_إبن_يسار( ع, ل) :  تخصيص العنوان ل إلى الحقل "إبن_يسار" للعقدة المشار إليها بواسطة ع.

ضع_إبن_يمين( ع, ل) : تخصيص العنوان ل إلى الحقل "إبن_يمين" للعقدة المشار إليها بواسطة ع.

ضع_أب( ع, ل) : تخصيص العنوان ل إلى الحقل "أب" للعقدة المشار إليها بواسطة ع.

ضع_قيمة_عقدة( ع, ق ) : تخصيص القيمة ق إلى الحقل "قيمة" للعقدة المشار إليها بواسطة ع.

تعريف :

 تسمح لك شجرة البحث المتعددة بتمثيل مجموعة من البيانات القابلة للمقارنة. هذا هو تعميم شجرة البحث الثنائية. بدلا من الامتلاك على قيمةواحدة وحقلي عنوان ، لدينا ص عناوين و (ص-1) قيم ، وفي هذه الحالة يقال إن شجرة البحث المتعددة ذات ترتيب ص. بشكل حدسي ، تحتوي العقدة على النموذج التالي: (عنوان 1, قيمة 1, عنوان 2, قيمة 2,...... قيمة ص-1 ، عنوان ص). جميع بيانات الشجرة الفرعية التي لها جذر عنوان 1 أقل من قيمة 1 ، وجميع البيانات الموجودة في الشجرة الفرعية التي لها جذر عنوان 2 أكبر من قيمة 1 وأقل من قيمة 2 ، إلخ.
تتكون الآلة المجردة من توفير عمليات لإجراء التخصيص الديناميكي والعمليات لملء العقدة والعمليات لاستشارة العقدة. تعمل الآلة المجردة فقط على مستوى العقدة.

عمليات :

احجز_عقدة( ق) : حجز عقدة مع المعطية ق و إرجاع عنوان العقدة. تخصيص "لا شيء" إلى الحقول الأخرى للعقدة.

سرح_عقدة( ع ) : تسريح العقدة بعنوان ع

إبن( ع, ر ) : الحصول على العنوان ( من رتبة ر) من عقدة المشار إليها بواسطة ع

أب( ع ) : الحصول على الحقل أب للعقدة المشار إليها بواسطة ع

قيمة_عقدة_شم( ع, ر) : الحصول على المعطية ( من رتبة ر) من عقدة المشار إليها بواسطة ع

ضع_إبن( ع, ر, ل) : تخصيص العنوان ل كالإبن ( من رتبة ر) من عقدة المشار إليها بواسطة ع

ضع_أب( ع, ل) : تخصيص العنوان ل إلى الحقل أب للعقدة المشار إليها بواسطة ع.

ضع_قيمة_عقدة_شم( ع, ر, ق) : تخصيص القيمة ق كالمعطية ( من رتبة ر) من عقدة المشار إليها بواسطة س

درجة(ع) : عدد البيانات المخزنة في العقدة المشار إليها بواسطة ع.

ضع_درجة(ع, ر) : تخصيص القيمة ر إلى الحقل درجة للعقدة المشار إليها بواسطة ع

تعريف :

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

عمليات :

حقل(ب, ر) : الحصول على الحقل رقم ر.

ضع_حقل(ب, ر, ق) : تخصيص القيمة ق إلى الحقل رقم ر.

احجز_بنية(ب) :  حجز بنية

سرح_بنية(ب) : تسريح بنية

 

تعريف :

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

عمليات :

افتح_ملف (م, مف, طارقة) : فتح الملف المنطقي و ربطه بالملف الفعلي تحديد ما إذا كان الملف هو جديد ('ن') أو القديم ('أ').

أغلق_ملف(م) : إغلاق الملف.

اقرأ_تسلسلا_ملف (م, ق) : القراءة في المتغير ق البنية الموجودة في الموضع الحالي.

اكتب_تسلسلا_ملف (م, ق) : كتابة البنية ق في الوضع الحالي.

اقرأ_مباشرة_ملف (م, ق, ر) : قراءة البنية ر من الملف.

اكتب_مباشرة_ملف (م, ق, ر) : كتابة البنية ق في المركز ر

اظف_ملف (م, ق) : إظافة البنية ق في نهاية الملف

نهاية_ملف (م) : دالة مساوية لصواب إذا واجهت نهاية الملف ، خطأ خلاف ذلك.

احجز_كتلة_ملف(م) : موقف كتلة (أو بنية) التي يمكننا الكتابة فيها.

صدر_ملف (م, ر) : استعادة خاصية ر من الملف.

ضع_صدر_ملف(م, ر, ق) : تعيين ق كخاصية ر من الملف.