تقنية

PriorityQueue في بايثون: هل التعادل يحفظ ترتيب الوصول؟

أولوية واحدة وإدخال leaf أولًا
ترتيب الإدخال. [1] [2]

تساوي رقم الأولوية لا يجعل صفّين مختلفين متساويين. [1] [2]

الخلاصة السريعة

لا؛ يخرج bud أولًا رغم إدخال leaf قبله هنا. [1] [2]

  • ندخل (1,'leaf') ثم (1,'bud'). [1] [2]
  • رقم الأولوية 1 في الصفين. [1] [2]
  • التسمية تحسم مقارنة الصفين هنا. [1] [2]
  • الخروج (1,'bud') ثم (1,'leaf'). [1] [2]
  • اختبرنا 3.12.14 بالتتابع دون خيوط. [1] [2]

المثال

from queue import PriorityQueue
q=PriorityQueue()
q.put((1,'leaf'))
q.put((1,'bud'))
print(q.get_nowait())
print(q.get_nowait())

[1] [2]

التعادل والمقارنة

المصدر هنا يضيف الصف كاملًا إلى الكومة ويستخرج الأصغر. عند تساوي الرقم تقارن تسميتا مثالنا؛ bud يسبق leaf. الأولوية المتساوية لا تضمن ترتيب الوصول. [1] [2]

خروج bud قبل leaf
ترتيب السحب. [1] [2]

حدود التجربة

الناتج للصفوف والأسماء المعروضة. لا نفحص حمولة غير قابلة للمقارنة أو وصولًا متزامنًا، ولا نستنتج اكتمال مهمة من سحبها. [1] [2]

المراجع

  1. Python 3.12: PriorityQueue
  2. CPython 3.12.14: queue.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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