المكدسات والطوابير والقوائم المترابطة – المؤشرات خطوة بخطوة
علوم الحاسوبالخوارزميات وحل المشكلات17–18 سنة
جارٍ التحميل…
سجّل الدخول للتشغيلنفّذ الدفع والسحب على مكدس، والإضافة والإخراج على طوابير خطية ودائرية وطوابير أولوية، وأدرج العقد في قائمة مترابطة واحذفها وابحث فيها، وراقب مؤشرات القمة والمقدمة والمؤخرة والرأس وروابط next وهي تتغير سطرًا سطرًا بلغة Python أو بالشيفرة الزائفة، مع حالات الفيض والغيض. وقارن التنفيذ بالمصفوفات الساكنة بالعقد والمؤشرات الديناميكية، بما في ذلك استهلاك الذاكرة، وجرّب تطبيقات: مطابقة الأقواس، والتراجع والإعادة، وطابور الطباعة، ومكدس الاستدعاءات.
الدرس: هياكل البيانات المجردة: المكدسات والطوابير والقوائم المترابطة؛ التنفيذ بالمصفوفات وبالمؤشرات
ماذا تعرض
المكدسات والطوابير والقوائم المترابطة هياكل بيانات مجردة. المكدس يعمل بمبدأ «الداخل أخيرًا يخرج أولًا»: يجري الدفع والسحب عند القمة. والطابور يعمل بمبدأ «الداخل أولًا يخرج أولًا»: تنضم العناصر عند المؤخرة وتغادر من المقدمة؛ ويعيد الطابور الدائري استخدام الخلايا المحررة بالعملية MOD، ويخدم طابور الأولوية العنصر الأعلى أولوية أولًا. وتخزن القائمة المترابطة كل قيمة في عقدة فيها مؤشر إلى العقدة التالية، وتنتهي بمؤشر فارغ. تحجز المصفوفة الساكنة كتلة ثابتة من الذاكرة وقد يحدث فيها فيض، بينما تكبر العقد الديناميكية وتصغر لكنها تحتاج إلى ذاكرة إضافية للمؤشرات.
طريقة الاستخدام
اختر «مكدس» أو «طابور» أو «قائمة مترابطة» أو «تطبيقات» واختر «التنفيذ». اكتب «القيمة» واضغط زر عملية مثل «دفع» أو «إضافة إلى الطابور» أو «إدراج في موضع»؛ فتُنفَّذ الشيفرة سطرًا سطرًا بـ«السرعة» المختارة. فعّل «سطرًا سطرًا» واضغط «السطر التالي» للتقدم ببطء، أو «أنهِ العملية». وراقب المؤشرات ولوحة «الذاكرة» وسجل «العمليات».
المعاملات القابلة للتغيير
- الوضع مكدس, طابور, قائمة مترابطة, تطبيقات
- التنفيذ مصفوفة ساكنة, عقد ومؤشرات (ديناميكي)
- نوع الطابور خطي, دائري, أولوية
- سعة المصفوفة 3–10 خلايا
- التطبيق مطابقة الأقواس (مكدس), التراجع / الإعادة (مكدسان), طابور الطباعة (طابور), مكدس الاستدعاءات
- اللغة Python, الشيفرة الزائفة
- سرعة التشغيل 0.5–5 سطر/ثانية
أسئلة للاستكشاف
- لماذا قد يمتلئ الطابور الخطي بينما خلايا المقدمة فارغة، وكيف يعالج الطابور الدائري ذلك؟
- ما المؤشرات التي تتغير عند إدراج عقدة في منتصف قائمة مترابطة؟
- كم بايتًا تحتاج ستة أعداد صحيحة في مصفوفة ساكنة وفي عقد مترابطة في هذا النموذج؟