كيفية تنفيذ قائمة انتظار الأولوية في C ++



ستزودك هذه المقالة بمعرفة مفصلة وشاملة حول كيفية تنفيذ قائمة انتظار الأولوية في C ++ مع أمثلة.

قائمة الانتظار ذات الأولوية هي حاوية في المحكمة الخاصة بلبنان. إنه مشابه لقائمة الانتظار باستثناء حقيقة أن كل عنصر في قائمة انتظار الأولوية له أولوية معينة وعندما نخرج العناصر من قائمة انتظار الأولوية ، تظهر العناصر ذات الأولوية القصوى أولاً. مثل قائمة انتظار الأولوية ، هناك 10 أنواع مختلفة من الحاويات في STL . الحاوية هي كائن يخزن البيانات. يتم تنفيذ حاويات STL بمساعدة فئات القوالب وبالتالي فإن تخصيصها لاحتواء أنواع مختلفة من البيانات أمر سهل. في هذا المنشور ، سنناقش قائمة انتظار الأولوية والمفاهيم المتعلقة بها بالتفصيل. سيتم تغطية المؤشرات التالية في قائمة انتظار الأولوية هذه في مقالة C ++ ،

المضي قدمًا في هذه المقالة حول Priority Queue في C ++





مكونات المحكمة الخاصة بلبنان

يتكون STL من فئات ووظائف القوالب التي يمكن استخدامها كنهج قياسي لتخزين البيانات ومعالجتها. دعونا نناقش مكونات المحكمة الخاصة بلبنان

حاويات- هناك 10 أنواع من الحاويات المحددة في STL وهي مجمعة في 3 فئات. من بين هؤلاء الثلاثة ، تنتمي قوائم انتظار الأولوية إلى فئة الحاوية المشتقة. لكل فئة حاوية مجموعة وظائفها الخاصة التي يمكن استخدامها لمعالجة البيانات.



الخوارزمية - الخوارزمية هي طريقة تستخدم لمعالجة البيانات الموجودة في كائن الحاوية. يوفر STL العديد من أنواع الخوارزميات المختلفة التي يمكن استخدامها في التهيئة والبحث والفرز والدمج والنسخ. يتم تنفيذ الخوارزميات بمساعدة وظائف النموذج.

التكرار- المكرر هو كائن يشير إلى عنصر في الحاوية. يمكن أن تساعد التكرارات في التنقل عبر محتويات الحاوية. التكرارات هي مثل المؤشرات التي يمكن زيادتها وإنقاصها. يعمل كحلقة وصل بين الخوارزمية والحاوية. تستخدم التكرارات لمعالجة البيانات المخزنة في الحاوية.

ما هو الفول في جافا

المضي قدمًا في هذه المقالة حول Priority Queue في C ++



الأكوام والأولوية في قائمة الانتظار

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

تُعرف المكدس وقائمة الانتظار وقائمة انتظار الأولوية بالحاويات المشتقة لأنها مصنوعة من حاويات تسلسل مختلفة. لا تدعم هذه الحاويات أي نوع من التكرارات التي لا يتم استخدامها لمعالجة البيانات.

ما هو بالضبط قائمة انتظار الأولوية؟

بكلمات بسيطة ، إنها حاوية استخدمناها لتخزين البيانات. يتم تعيين بعض الأولوية لكل عنصر من عناصر البيانات المخزنة والتي يمكن أن تساعدنا في تخزين البيانات بترتيب منطقي.
بناء الجملة:Priority_queue variable_name

من المهم تضمين ملف رأس في البرنامج لاستخدام قائمة انتظار الأولوية.

قائمة انتظار الأولوية في c ++على سبيل المثال ، إذا أضفنا 2 ، 10 ، 30 ، 5 ، 6 في قائمة انتظارنا ذات الأولوية باستخدام وظيفة الدفع ثم انبثقت العناصر باستخدام وظيفة البوب ​​، فسيكون الناتج 30 ، 10 ، 6 ، 5 ، 2.

حسنًا ، نحن الآن نعرف الغرض من قائمة الانتظار ذات الأولوية أو استخدامها. ولكن كيف عرفت أن 30> 10؟ هل تقوم بنوع من الفرز؟ في هذه المرحلة ، تظهر أكوام الصورة. لمعرفة المزيد حول أكوام بالتفصيل الرجوع إلى هذه المقالة.

أكوام- الأكوام هي هياكل تشبه الأشجار. استنادًا إلى كيفية ترتيب عقد العناصر الفرعية في كومة فيما يتعلق بالعقد الأصلية ، يتم تقسيم الأكوام إلى جزأين

واحد. كومة دقيقة- في Min Heap ، تكون قيمة العقدة الأصلية أقل من أو تساوي قيمة العقد الفرعية.

2. ماكس كومة- في Max Heap ، تكون قيمة العقدة الأصلية أكبر من أو تساوي قيمة العقد الفرعية.

ملحوظة- لا تقوم قائمة انتظار الأولوية بفرز العناصر باستخدام بعض خوارزمية الفرز بدلاً من تخزين البيانات في شكل كومة.

المضي قدمًا في هذه المقالة حول Priority Queue في C ++

طباعة جميع عناصر قائمة انتظار الأولوية

بعد فهم أساسيات قائمة انتظار الأولوية ، دعنا ننفذ برامج لفهم الأساليب الأكثر استخدامًا مع قائمة انتظار الأولوية

#include #include using namespace std int main () {priority_queue Prior_q Prior_q.push (10) Prior_q.push (30) Prior_q.push (6) Prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

انتاج:

رواتب مطور جافا في الهند

30 15 10 9 6 2

في البرنامج أعلاه ، استخدمنا وظائف pop () و top () و push () التي تُستخدم في معظم الأوقات أثناء التعامل مع قائمة انتظار ذات أولوية. دعونا نلقي نظرة على بعض الطرق التي يمكننا استخدامها مع قائمة انتظار الأولوية

بحجم( ): تقوم هذه الوظيفة بإرجاع حجم قائمة انتظار الأولوية

فارغة( ): تُستخدم هذه الوظيفة للتحقق مما إذا كانت قائمة انتظار الأولوية فارغة أم لا. يعود صحيحًا أن قائمة انتظار الأولوية فارغة.

إدفع( ): يُدرج عنصرًا في قائمة انتظار الأولوية.

فرقعة (): تزيل هذه الوظيفة العنصر الأعلى من قائمة انتظار الأولوية وهو العنصر الذي له أولوية قصوى.

مبادلة، مقايضة( ): تقوم هذه الوظيفة بتبديل عناصر قائمة انتظار الأولوية بقائمة انتظار أخرى ذات أولوية. تأخذ الوظيفة قائمة انتظار الأولوية كمعامل.

emplace (): تستخدم هذه الوظيفة لإضافة عنصر إلى أعلى قائمة انتظار الأولوية.

لنلق نظرة على برنامج آخر.

#include #include using namespace std int main () {priority_queue Prior_q Prior_q.push (10) Prior_q.push (30) Prior_q.push (6) Prior_q.push (2) Prior_q.push (15) Prior_q.push (9) Prior_q.push (7) while (Prior_q.empty () == false) {cout<< Prior_q.top() << ' ' Prior_q.pop() } return 0 }

انتاج:

2 6 7 9 10 15 30

مع هذا ، وصلنا إلى نهاية قائمة انتظار الأولوية هذه في مقالة C ++. إذا كنت ترغب في معرفة المزيد ، تحقق من بواسطة Edureka ، شركة تعليمية موثوقة عبر الإنترنت. تم تصميم دورة تدريب وإصدار شهادات Java J2EE و SOA من Edureka لتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في هذه المدونة وسنعاود الاتصال بك في أقرب وقت ممكن.