Package de.pakad.adt
Class PriorityQueueWithPrio<T>
java.lang.Object
de.pakad.adt.PriorityQueueWithPrio<T>
- Type Parameters:
T- Typ der gespeicherten Elemente
- All Implemented Interfaces:
Queue<T>
PriorityQueueWithPrio implementiert eine Prioritätswarteschlange
(Queue), bei der die Priorität der Elemente explizit beim
Einfügen angegeben wird.
Die Reihenfolge der Abarbeitung richtet sich primär nach der Priorität der Elemente und sekundär nach der Einfügereihenfolge (FIFO bei gleicher Priorität).
Intern wird ein binärer Heap verwendet, dessen Ordnung durch
einen Comparator festgelegt wird.
Java-Version: 17 oder höher
- Author:
- Karsten Brodmann (kb@punkt-akademie.de)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumDefiniert die Prioritätsordnung der Queue. -
Constructor Summary
ConstructorsConstructorDescriptionPriorityQueueWithPrio(int initialCapacity) Erzeugt eine leere Prioritätswarteschlange mit der angegebenen Anfangskapazität.PriorityQueueWithPrio(PriorityQueueWithPrio.Order order, int initialCapacity) Erzeugt eine leere Prioritätswarteschlange mit der angegebenen Prioritätsordnung und Anfangskapazität. -
Method Summary
Modifier and TypeMethodDescriptiondequeue()Entfernt das Element mit der höchsten Priorität und liefert dessen Wert zurück.booleanempty()Prüft, ob die Prioritätswarteschlange leer ist.voidFügt ein Element mit der Standardpriorität0in die Prioritätswarteschlange ein.voidFügt ein Element mit der angegebenen Priorität in die Prioritätswarteschlange ein.front()Liefert das Element mit der höchsten Priorität, ohne es zu entfernen.intsize()Liefert die Anzahl der in der Prioritätswarteschlange gespeicherten Elemente.
-
Constructor Details
-
PriorityQueueWithPrio
public PriorityQueueWithPrio(int initialCapacity) Erzeugt eine leere Prioritätswarteschlange mit der angegebenen Anfangskapazität.Es gilt die Standardordnung
PriorityQueueWithPrio.Order.MIN_PRIORITY_FIRST.- Parameters:
initialCapacity- Anfangskapazität (mindestens 10)- Throws:
IllegalArgumentException- wenninitialCapacity < 10ist
-
PriorityQueueWithPrio
Erzeugt eine leere Prioritätswarteschlange mit der angegebenen Prioritätsordnung und Anfangskapazität.- Parameters:
order- PrioritätsordnunginitialCapacity- Anfangskapazität (mindestens 10)- Throws:
IllegalArgumentException- wenninitialCapacity < 10ist
-
-
Method Details
-
enqueue
Fügt ein Element mit der angegebenen Priorität in die Prioritätswarteschlange ein.Laufzeit:
O(log n)- Parameters:
value- einzufügendes Elementpriority- Priorität des Elements- Throws:
NullPointerException- wennvalue == nullist
-
enqueue
Fügt ein Element mit der Standardpriorität0in die Prioritätswarteschlange ein.Hinweis: Diese Methode dient der Kompatibilität mit dem
Queue-Interface. Für eine sinnvolle Nutzung der Prioritätswarteschlange sollte bevorzugtenqueue(Object, int)verwendet werden.Laufzeit:
O(log n) -
front
Liefert das Element mit der höchsten Priorität, ohne es zu entfernen.Laufzeit:
O(1)- Specified by:
frontin interfaceQueue<T>- Returns:
- Element mit der höchsten Priorität
- Throws:
NoSuchElementException- wenn die Queue leer ist
-
dequeue
Entfernt das Element mit der höchsten Priorität und liefert dessen Wert zurück.Laufzeit:
O(log n)- Specified by:
dequeuein interfaceQueue<T>- Returns:
- entferntes Element mit der höchsten Priorität
- Throws:
NoSuchElementException- wenn die Queue leer ist
-
empty
public boolean empty()Prüft, ob die Prioritätswarteschlange leer ist. -
size
public int size()Liefert die Anzahl der in der Prioritätswarteschlange gespeicherten Elemente.- Returns:
- Anzahl der Elemente
-