المكدس والطابور (Stack et Queue) في لغة Pascal: مفهومها وتطبيقاتها
الأهداف التعليمية:
- تعريف المكدس (Stack) والطابور (Queue)
- فهم مبدأ عمل كل منهما (LIFO / FIFO)
- التعرف على العمليات الأساسية (Push, Pop, Enqueue, Dequeue)
- تطبيق المفاهيم من خلال تمارين بكالوريا محلولة
I – المكدس (Stack)
المكدس هو هيكل بيانات يعمل وفق مبدأ “آخر ما يدخل هو أول ما يخرج” (LIFO: Last In First Out). يشبه رمية الأطباق: آخر طبق وضعته هو أول طبق ترفعه.
العمليات الأساسية:
- Push (دفع): إضافة عنصر إلى أعلى المكدس.
- Pop (حذف): إزالة العنصر العلوي من المكدس.
- Top (قراءة): الاطلاع على العنصر العلوي دون حذفه.
- IsEmpty (فحص الفراغ): التحقق مما إذا كان المكدس فارغاً.
مثال تطبيقي:
Program Exemple_Stack;
Const Max = 100;
Type Stack = Record
Tab : Array[1..Max] Of Integer;
Top : Integer;
End;
Var Pile : Stack;
Procedure Push(Var P: Stack; X: Integer);
Begin
If P.Top < Max Then
Begin
P.Top := P.Top + 1;
P.Tab[P.Top] := X;
End
Else Writeln('المكدس ممتلئ');
End;
Function Pop(Var P: Stack): Integer;
Begin
If P.Top > 0 Then
Begin
Pop := P.Tab[P.Top];
P.Top := P.Top - 1;
End
Else Writeln('المكدس فارغ');
End;
II – الطابور (Queue)
الطابور هو هيكل بيانات يعمل وفق مبدأ “أول ما يدخل هو أول ما يخرج” (FIFO: First In First Out). يشبه طابور الانتظار في السوبرماركت: أول شخص في الطابور هو أول من يخرج.
العمليات الأساسية:
- Enqueue (إدخال): إضافة عنصر إلى نهاية الطابور.
- Dequeue (إخراج): إزالة العنصر من بداية الطابور.
- IsEmpty (فحص الفراغ): التحقق مما إذا كان الطابور فارغاً.
III – تطبيقات المكدس والطابور
- تطبيقات المكدس: التراجع عن العمليات (Undo)، تقييم التعبيرات الرياضية (Reverse Polish Notation)، ترتيب استدعاء الدوال.
- تطبيقات الطابور: جدولة المهام في نظام التشغيل، إدارة طلبات الطباعة، معالجة البيانات في الشبكات (Buffer).
IV – تمارين بكالوريا محلولة
التمرين 01 (بكالوريا): لدينا الأعداد 5, 8, 3, 1. أدخلها بالترتيب في مكدس ثم أخرجها. ما هو ترتيب الخروج؟
الحل: ترتيب الخروج: 1, 3, 8, 5. لأن المكدس يعمل LIFO: آخر عدد دخل (1) يخرج أولاً.
التمرين 02: اكتب دالة في Pascal تتحقق مما إذا كانت جملة من الأقواس متوازنة باستخدام المكدس (مثال: (()) صحيح، ())( غير صحيح).
الحل: نمر على كل قوس: إذا كان قوس فتح ندفعه إلى المكدس، وإذا كان قوس غلق نخرجه. في النهاية، إذا كان المكدس فارغاً فالجملة متوازنة.
مدونة التربية و التعليم في الجزائر – دروس، فروض، نتائج امتحانات مدونة التربية والتعليم في الجزائر | تحضير الدروس، فروض واختبارات، نتائج البكالوريا وBEM، مسابقات التوظيف، والتوجيه المدرسي للطلاب وأولياء الأمور.