Ich habe ein College-Programmierprojekt in C++ in zwei Teile unterteilt. Ich beginne den zweiten Teil, wo es priority_queues
, hash tables
und BST
's verwenden soll.Liste zur Prioritätswarteschlange
Ich habe Probleme (zumindest) mit Priority Queues, da es mich verpflichtet, eine Menge Code, der bereits im ersten Teil implementiert wurde, zu wiederholen.
Das Projekt es geht darum, ein einfaches Flughafenmanagementsystem zu implementieren und deshalb habe ich Klassen wie Flughafen (Hauptklasse), Flugzeug, Terminal und Flug. Mein Flughafen hatte eine list
von Terminals, aber jetzt die Projektspezifikation weist darauf hin, dass ich die Terminals in einerpriority_queue
halten muss, wo die Spitze enthält das Terminal weniger besetzt, d. H. Weniger Flüge.
Für jede Klasse habe ich CRUD-Funktionen, aber wie soll ich zum Beispiel ein Terminal bearbeiten und einen Flug hinzufügen? Mit einer Liste musste ich nur zu einer bestimmten Position iterieren, aber jetzt habe ich nur Zugriff auf das Objekt oben in der Warteschlange. Die Lösung, über die ich nachdachte, war, die Terminals der Prioritätswarteschlange in eine temporäre Liste zu kopieren, aber ehrlich gesagt mag ich diesen Ansatz nicht.
Was soll ich tun?
Vielen Dank im Voraus.
Wissen Sie, wie ein Element aus einer Prioritätswarteschlange abzurufen? Wissen Sie, wie Sie in eine Prioritätswarteschlange einfügen? Was sind die Voraussetzungen für Ihre Benutzeroberfläche genau? Warum, genau, denkst du, dass du die 'Terminals' in einer Prioritätswarteschlange halten musst? –
@Karl Knechtel: 'top()' zum Abrufen des ersten Elements, 'push' zum Einfügen eines Elements und' pop' zum Entfernen des ersten Elements. Ich brauche CRUD-Funktionen für jede Klasse in der Implementierung. Das System muss den Benutzer alle typischen Aktionen ausführen lassen, die Sie hätten, wenn Sie einen Flughafen verwalten müssten: ** create ** 'airplanes', ** create **' flights', ** create ** 'terminals', ** Mitarbeiter ** "Flugzeuge" und "Flüge", ** Mitarbeiter ** "Flüge" und "Terminals". Wo ich 'add' geschrieben habe, kann es durch die anderen ** CRUD ** Funktionen (lesen, aktualisieren und löschen) ersetzt werden. –
Wenn Sie eine Prioritätswarteschlange verwenden müssen, können Sie nur eine Prioritätswarteschlange verwenden? Oder dürfen Sie Zeiger auf die Terminals in einer Prioritätswarteschlange und einer Hashtabelle oder BST speichern? – outis