Class Heap<E>
- Type Parameters:
E- Typ der gespeicherten Elemente
Heap implementiert einen binären Heap (Prioritätswarteschlange)
auf Basis eines Arrays.
Die Ordnung der Elemente wird vollständig durch einen Comparator
festgelegt, der beim Erzeugen des Heaps übergeben wird.
Der Heap erfüllt die Heap-Eigenschaft:
Für jeden Knoten p und seine Kinder c gilt
comp.compare(p, c) <= 0.
Die Implementierung verwendet ein dynamisch wachsendes Array und realisiert einen vollständigen binären Baum in impliziter Form.
Java-Version: 17 oder höher
- Author:
- Karsten Brodmann (kb@punkt-akademie.de)
-
Constructor Summary
ConstructorsConstructorDescriptionHeap(Comparator<? super E> comp, int capacity) Erzeugt einen leeren Heap mit der angegebenen Anfangskapazität und der angegebenen Vergleichsfunktion. -
Method Summary
Modifier and TypeMethodDescriptionbooleanempty()Prüft, ob der Heap leer ist.peek()Liefert das oberste Element des Heaps, ohne es zu entfernen.pop()Entfernt und liefert das oberste Element des Heaps.voidFügt ein neues Element in den Heap ein.intsize()Liefert die Anzahl der im Heap gespeicherten Elemente.
-
Constructor Details
-
Heap
Erzeugt einen leeren Heap mit der angegebenen Anfangskapazität und der angegebenen Vergleichsfunktion.- Parameters:
comp- Vergleichsfunktion zur Ordnung der Elementecapacity- Anfangskapazität des internen Arrays- Throws:
IllegalArgumentException- wenncapacity < 1istNullPointerException- wenncomp == nullist
-
-
Method Details
-
empty
public boolean empty()Prüft, ob der Heap leer ist.- Returns:
true, wenn der Heap keine Elemente enthält, sonstfalse
-
size
public int size()Liefert die Anzahl der im Heap gespeicherten Elemente.- Returns:
- Anzahl der Elemente
-
push
Fügt ein neues Element in den Heap ein.Das Element wird zunächst am Ende eingefügt und anschließend durch
siftUpan die korrekte Position verschoben, sodass die Heap-Eigenschaft erhalten bleibt.Laufzeit:
O(log n)- Parameters:
x- einzufügendes Element- Throws:
IllegalArgumentException- wennx == nullist
-
peek
Liefert das oberste Element des Heaps, ohne es zu entfernen.Das oberste Element ist dasjenige mit der höchsten Priorität gemäß der Vergleichsfunktion.
Laufzeit:
O(1)- Returns:
- oberstes Heap-Element
- Throws:
NoSuchElementException- wenn der Heap leer ist
-
pop
Entfernt und liefert das oberste Element des Heaps.Das letzte Element wird an die Wurzel verschoben und anschließend durch
siftDownan die korrekte Position gebracht.Laufzeit:
O(log n)- Returns:
- entferntes oberstes Heap-Element
- Throws:
NoSuchElementException- wenn der Heap leer ist
-