عادةً ما تكون قوائم الانتظار محبطة في الحياة الواقعية ، ولكن في برنامج الكمبيوتر يمكنها حل العديد من المشكلات. اكتشف ما يمكنك القيام به مع قائمة الانتظار وكيف.

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

إذا كنت تسعى جاهدًا لأن تكون مطور لغة Python ، فمن الضروري أن تكتسب السرعة مع بنية البيانات البسيطة والموجودة في كل مكان. دعنا نتعلم ماهية بنية بيانات قائمة الانتظار وكيفية تنفيذها في Python.

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

حقوق الصورة: ويكيبيديا

قائمة الانتظار هي بنية بيانات خطية ، تتبع مبدأ First-In-First-Out (FIFO). هذا يعني أنه عند جلب عنصر من قائمة انتظار ، ستحصل على العنصر الذي أضفته قبل العناصر الأخرى.

فيما يلي العمليات الأساسية التي يمكنك إجراؤها في قائمة انتظار:

  • قائمة الانتظار: أضف عناصر إلى قائمة الانتظار.
  • Dequeue: إزالة العناصر من قائمة الانتظار.
  • طباعة: اطبع العناصر الموجودة في قائمة الانتظار.
  • Front: احصل على العنصر في مقدمة قائمة الانتظار.
  • الخلفية: احصل على العنصر في الجزء الخلفي من قائمة الانتظار.
instagram viewer

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

كيفية تنفيذ بنية بيانات قائمة الانتظار في بايثون

ستنفذ قائمة انتظار باستخدام حاوية القائمة في Python. ابدأ بإعلان قائمة فارغة بالاسم طابور.

قائمة الانتظار = []

أنت الآن بحاجة إلى قبول إدخال المستخدم وإجراء العملية التي أدخلها المستخدم. أولاً ، اطبع سطرًا يطالب المستخدم بإدخال أمر. بعد ذلك ، انتظر إدخال المستخدم وقم بتخزينه في ملف يأمر عامل.

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

بينماحقيقي:
الأمر = الإدخال ("ماذا تريد أن تفعل؟ ")

لو الأمر == "قائمة":
# شفرة
أليف الأمر == "ديكيو":
# شفرة
آخر:
استراحة

قائمة انتظار الطباعة)

قائمة الانتظار

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

لويأمر == "قائمة":
قائمة الانتظار = int(مدخل("أدخل العنصر إلى قائمة الانتظار:"))

ديكيو

الآن ، اكتب الكود لإخراج عنصر من قائمة الانتظار. يمكنك القيام بذلك باستخدام طريقة pop مع 0 كفهرس. لماذا؟ كما تعلمت سابقًا ، تتبع قائمة الانتظار ترتيب FIFO ، لذا يجب أن يكون العنصر الأول الذي تقوم بإدراجه في قائمة الانتظار هو العنصر الأول الذي تقوم بإزالته.

لو الأمر == "ديكيو":
queue.pop (0)

أمام

للمضي قدمًا ، اكتب الكود لطباعة العنصر في مقدمة قائمة الانتظار. ما عليك سوى طباعة الفهرس 0 لقائمة الانتظار.

لو الأمر == "أمام":
قائمة انتظار الطباعة[0])

مؤخرة

يشبه إلى حد كبير رمز العملية الأمامية ، لأداء العملية الخلفية ، اطبع العنصر في الفهرس الأخير. للقيام بذلك ، استخدم أولاً وظيفة len () في قائمة الانتظار ثم اطرح 1 منها للعثور على الفهرس الأخير.

لو الأمر == "مؤخرة":
طباعة (قائمة الانتظار [لين (قائمة الانتظار) - 1])

مطبعة

أخيرًا ، اكتب الكود الخاص بأمر الطباعة. ما عليك سوى طباعة القائمة باستخدام معيار Python مطبعة() وظيفة.

لو الأمر == "مطبعة":
قائمة انتظار الطباعة)

إذا كان النص الذي يدخله المستخدم لا يتطابق مع أمر مدعوم ، فقم بالخروج من حلقة while باستخدام تعليمة break. يجب أن يبدو الرمز النهائي كما يلي:

قائمة الانتظار = []

بينماحقيقي:
الأمر = الإدخال ("ماذا تريد أن تفعل؟ \ n")

لو الأمر == "قائمة":
enqueue = int (المدخلات ("أدخل العنصر إلى قائمة الانتظار:"))
queue.append (قائمة)
أليف الأمر == "ديكيو":
queue.pop (0)
أليف الأمر == "مطبعة":
قائمة انتظار الطباعة)
أليف الأمر == "أمام":
قائمة انتظار الطباعة[0])
أليف الأمر == "مؤخرة":
طباعة (قائمة انتظار [لين (قائمة انتظار))-1])
آخر:
استراحة

قائمة انتظار الطباعة)

قم بتشغيل البرنامج لتجربة عمليات قائمة الانتظار المختلفة. استخدم أمر الطباعة لمعرفة كيفية تأثيرها على قائمة الانتظار الخاصة بك. لقد أنشأت الآن تطبيق قائمة الانتظار البسيط الخاص بك في Python.

قائمة الانتظار هي مجرد واحدة من العديد من هياكل البيانات المفيدة

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

يميل الباحثون أيضًا إلى طرح الأسئلة المتعلقة بهياكل البيانات ، لذلك إذا كنت تبحث عن وظيفة برمجة ذات رواتب عالية ، فستحتاج إلى تحسين معرفتك بهياكل البيانات.