Class PriorityQueue<T extends Comparable<? super T>>
- Type Parameters:
T- Typ der gespeicherten Elemente; mussComparableimplementieren
- All Implemented Interfaces:
Queue<T>
PriorityQueue implementiert eine Prioritätswarteschlange
auf Basis eines binären Heaps.
Die Priorität der Elemente ergibt sich aus ihrer natürlichen Ordnung
(siehe Comparable). Das jeweils kleinste Element wird als
erstes geliefert (Min-PriorityQueue).
Diese Klasse implementiert das Queue-Interface, weicht jedoch
von einer klassischen FIFO-Queue ab: Die Reihenfolge der Abarbeitung
richtet sich nach der Priorität der Elemente und nicht nach der
Einfügereihenfolge.
Intern wird ein Heap verwendet, der mit der natürlichen Ordnung
der Elemente initialisiert wird.
Java-Version: 17 oder höher
- Author:
- Karsten Brodmann (kb@punkt-akademie.de)
-
Constructor Summary
ConstructorsConstructorDescriptionPriorityQueue(int capacity) Erzeugt eine leere Prioritätswarteschlange mit der angegebenen Anfangskapazität. -
Method Summary
Modifier and TypeMethodDescriptiondequeue()Entfernt und liefert das Element mit der höchsten Priorität.booleanempty()Prüft, ob die Prioritätswarteschlange leer ist.voidFügt ein Element 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
-
PriorityQueue
public PriorityQueue(int capacity) Erzeugt eine leere Prioritätswarteschlange mit der angegebenen Anfangskapazität.- Parameters:
capacity- Anfangskapazität der Queue- Throws:
IllegalArgumentException- wenncapacity < 1ist
-
-
Method Details
-
enqueue
Fügt ein Element in die Prioritätswarteschlange ein.Die Position des Elements wird entsprechend seiner Priorität (natürliche Ordnung) bestimmt.
Laufzeit:
O(log n)- Specified by:
enqueuein interfaceQueue<T extends Comparable<? super T>>- Parameters:
x- einzufügendes Element- Throws:
IllegalArgumentException- wennx == nullist
-
front
Liefert das Element mit der höchsten Priorität, ohne es zu entfernen.Die höchste Priorität besitzt das kleinste Element gemäß der natürlichen Ordnung.
Laufzeit:
O(1)- Specified by:
frontin interfaceQueue<T extends Comparable<? super T>>- Returns:
- Element mit der höchsten Priorität
- Throws:
NoSuchElementException- wenn die Queue leer ist
-
dequeue
Entfernt und liefert das Element mit der höchsten Priorität.Die höchste Priorität besitzt das kleinste Element gemäß der natürlichen Ordnung.
Laufzeit:
O(log n)- Specified by:
dequeuein interfaceQueue<T extends Comparable<? super 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.- Specified by:
emptyin interfaceQueue<T extends Comparable<? super T>>- Returns:
true, wenn keine Elemente enthalten sind, sonstfalse
-
size
public int size()Liefert die Anzahl der in der Prioritätswarteschlange gespeicherten Elemente.- Returns:
- Anzahl der Elemente
-