Es sollte bevorzugt werden, Elementwerte in der Warteschlange mit der höchsten Priorität zu erhalten.Wie prioriere ich die Queue-Implementierung mithilfe der zirkulären Warteschlange in C++?
Antwort
Benötigen Sie stattdessen mehrere Warteschlangen mit unterschiedlichen Prioritäten? Was ist das Problem, das du eigentlich lösen willst?
Die Idee einer Warteschlange ist - dass es eine Warteschlange ist, und was als nächstes in der Warteschlange ist, hat Priorität, und Sie sollten nur durch die Warteschlange gehen, indem Sie Material aus ihm entfernen. Das Implementieren einer Prioritätswarteschlange mit einer anderen Warteschlange - ob zirkulär oder nicht - ist nicht die effizienteste Vorgehensweise. Sie können es stattdessen als Heap oder Tree implementieren - es gibt eine Reihe von Artikeln, einschließlich einer auf Wikipedia on priority queues.
Ja, und eine Prioritätswarteschlange ist anders http://en.wikipedia.org/wiki/Priority_queue – Falmarri
Wenn wir über viele Ebenen der Priorität (1000 zum Beispiel) dann sprechen Mehrere Warteschlangen sind nicht die beste Lösung. – Dialecticus
@Falmarri - nicht sicher, ob Sie meine Antwort richtig gelesen oder interpretiert haben. Eine Prioritätswarteschlange mit einer anderen Warteschlange zu erstellen, macht keinen Sinn - denke, dass du den Punkt verpasst hast. –
Sie können eine Prioritätswarteschlange als binären Min-Heap implementieren. Die Schlüssel jedes Eintrags könnten seine "Priorität" darstellen und je niedriger der Schlüssel, desto mehr Priorität hat er. Wenn Sie also den Root-Eintrag entfernen, wird der Eintrag mit der höchsten Priorität zurückgegeben.
- 1. Drucken der zirkulären Warteschlange
- 2. Nachteil der zirkulären Warteschlange?
- 3. Wie ändere ich die Position in der Warteschlange?
- 4. Wie implementieren Sie einen zirkulären Puffer in C?
- 5. Wie erhalten Sie alle Nachrichten in der Amazon SQS-Warteschlange mithilfe der Boto-Bibliothek in Python?
- 6. Wie entferne ich die Warteschlange von settimeOut?
- 7. Wie kann ich ein C++ - Projekt in Visual Studio 2015 mit zirkulären Abhängigkeiten erstellen?
- 8. C++ Warteschlange von Funktionen
- 9. zirkulären Abhängigkeit mit Vorwärtsfehlerdeklaration
- 10. Wie ändere ich die Warteschlange für die Standardanforderung?
- 11. Wie bekomme ich die Anzahl der Anfragen in der Warteschlange in scrapy?
- 12. Wie kann ich die Anzahl der Jobs in der Warteschlange eines bestimmten Typs in Gearman abrufen?
- 13. C++ - Warteschlange - einfaches Beispiel
- 14. Vermeidung von zirkulären (zyklischen) Importen in Python?
- 15. Wie wiederhole ich den Job programmatisch in der Laravel-Warteschlange?
- 16. Wie loopiere ich die Warteschlange von Sounds in AVQueuePlayer?
- 17. Wie mithilfe von asp.net C#
- 18. Wie kopiere ich eine Warteschlange in Java?
- 19. Auflösen von zirkulären Abhängigkeiten mit Abhängigkeitsinjektion
- 20. Wie ändere ich den Namen der Ausgabedatei mithilfe der Variablen in Visual C++ Linker?
- 21. Wie Warteschlange Gesundheit in Sellerie
- 22. Wie ändere ich den Namen der Auslagerungsdatei mithilfe der Variablen in Visual C++ - Linker?
- 23. Die Methode enqueue() fügt der Warteschlange ein Element hinzu: Wie wird in C++ implementiert?
- 24. Wie erstelle ich eine Tabelle, in der ich mithilfe von Pfeilen mithilfe von Angular durch die Daten navigieren kann?
- 25. Optimierung der Warteschlange in mysql
- 26. Operator Überladung für Warteschlange C++
- 27. die letzten n Elemente aus der Warteschlange
- 28. Wie behandelt man Klassenobjekte mit zirkulären Referenzen?
- 29. Umgang mit zirkulären Abhängigkeiten in OCaml
- 30. Rabbitmq Nachricht erscheint nicht in der Warteschlange von C#
ist es per Definition keine Warteschlange. Verwenden Sie stattdessen Heap. – Drakosha
Es gibt eine std :: priority_queue. – Puppy
Scheint etwas Reibung erzeugt zu haben. Vielleicht könnten Sie einen Kontext hinzufügen - wie viele Prioritätsstufen haben Sie? Was ist das weitere Ziel oder ist das eine abstrakte Frage? Ich nehme an, dass Sie eine Prioritätswarteschlange bestimmter Größe wünschen? Das könnte einigen Kommentatoren helfen, direkt zu antworten ... –