logo

المكدس مقابل قائمة الانتظار

أولا، سوف ننظر ما هو المكدس و ما هو قائمة الانتظار بشكل فردي، ثم سنناقش الاختلافات بين المكدس وقائمة الانتظار.

ما هو المكدس؟

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

المكدس مقابل قائمة الانتظار

فيما يلي العمليات التي يمكن تنفيذها على المكدس:

    دفع (خ):إنها عملية يتم فيها إدراج العناصر في الجزء العلوي من المكدس. في ال يدفع دالة، نحتاج إلى تمرير العنصر الذي نريد إدراجه في المكدس.البوب ​​():إنها عملية يتم فيها حذف العناصر من أعلى المكدس. في ال البوب ​​() الدالة، ليس علينا تمرير أي وسيطة.نظرة خاطفة ()/أعلى ():ترجع هذه الدالة قيمة العنصر العلوي المتوفر في المكدس. مثل pop()، تقوم بإرجاع قيمة العنصر العلوي ولكنها لا تزيل هذا العنصر من المكدس.فارغ():إذا كانت المكدس فارغة، فستُرجع هذه الدالة قيمة صحيحة وإلا فإنها ستعيد قيمة خاطئة.ممتلئ():إذا كانت المكدس ممتلئة، فستُرجع هذه الدالة قيمة صحيحة وإلا فإنها ستعيد قيمة خاطئة.

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

    ثابتة:يمكن تنفيذ المكدس بشكل ثابت بمساعدة المصفوفات.متحرك:يمكن تنفيذ التنفيذ الديناميكي للمكدس بمساعدة القائمة المرتبطة.

ما هي قائمة الانتظار؟

أ

أوجه التشابه بين المكدس وقائمة الانتظار.

هناك نوعان من أوجه التشابه بين المكدس وقائمة الانتظار:

    بنية البيانات الخطية
    كل من المكدس وقائمة الانتظار عبارة عن بنية بيانات خطية، مما يعني أنه يتم تخزين العناصر بشكل تسلسلي ويمكن الوصول إليها في عملية واحدة.مرنة في الحجم
    يتميز كل من المكدس وقائمة الانتظار بالمرونة في الحجم، مما يعني أنه يمكن أن ينمو ويتقلص وفقًا للمتطلبات في وقت التشغيل.

الاختلافات بين المكدس وقائمة الانتظار

المكدس مقابل قائمة الانتظار

فيما يلي الاختلافات بين المكدس وقائمة الانتظار:

أساس للمقارنة كومة طابور
مبدأ وهو يتبع مبدأ LIFO (آخر ما يدخل أولاً يخرج)، والذي يعني ضمناً أن العنصر الذي تم إدراجه أخيرًا سيكون أول عنصر يتم حذفه. وهو يتبع مبدأ FIFO (الوارد أولاً - يخرج أولاً)، والذي يعني أن العنصر الذي تتم إضافته أولاً سيكون العنصر الأول الذي سيتم إزالته من القائمة.
بناء ولها نهاية واحدة فقط يتم من خلالها إجراء كل من الإدراج والحذف، وتعرف هذه النهاية بالقمة. وله طرفان، أي الطرف الأمامي والخلفي. يتم استخدام الواجهة الأمامية للحذف بينما يتم استخدام النهاية الخلفية للإدراج.
عدد المؤشرات المستخدمة يحتوي على مؤشر واحد فقط يعرف بالمؤشر العلوي. يحمل المؤشر العلوي عنوان آخر عنصر تم إدراجه أو العنصر العلوي في المكدس. يحتوي على مؤشرين أمامي ومؤشر خلفي. يحمل المؤشر الأمامي عنوان العنصر الأول، بينما يحمل المؤشر الخلفي عنوان العنصر الأخير في قائمة الانتظار.
تم تنفيذ العمليات ينفذ عمليتين، الدفع والبوب. تقوم عملية الدفع بإدراج العنصر في القائمة بينما تقوم عملية البوب ​​بإزالة العنصر من القائمة. وهو ينفذ بشكل رئيسي عمليتين، وهما enqueue وdequeue. تقوم عملية enqueue بإدراج العناصر في قائمة الانتظار بينما تقوم عملية dequeue بحذف العناصر من قائمة الانتظار.
فحص الحالة الفارغة إذا كان الجزء العلوي==-1، فهذا يعني أن المكدس فارغ. إذا كانت الواجهة الأمامية== -1 أو الأمامية = الخلفية+1، فهذا يعني أن قائمة الانتظار فارغة.
فحص الحالة الكاملة إذا كان top== max-1، فهذا الشرط يعني أن المكدس ممتلئ. إذا كانت الخلفية==max-1، فهذا الشرط يعني أن المكدس ممتلئ.
المتغيرات ليس لديها أي أنواع. وهي من ثلاثة أنواع مثل قائمة الانتظار ذات الأولوية، وقائمة الانتظار الدائرية، وقائمة الانتظار ذات النهاية المزدوجة.
تطبيق لديها تنفيذ أبسط. لديها تنفيذ معقد نسبيا من المكدس.
التصور يتم تصور المكدس كمجموعة عمودية. يتم تصور قائمة الانتظار كمجموعة أفقية.

نمط تصميم مفرد جافا