kleinste =r;
}
als (kleinste!=i) {
swap(i, kleinste);
heapifyDown(kleinste);
}
}
// Helperfunctie om twee elementen te verwisselen
private void swap(int i, int j) {
int temp =heap[i];
hoop[i] =hoop[j];
hoop[j] =temperatuur;
}
// Voeg een nieuw element in de heap in
openbare ongeldige invoeging (int-sleutel) {
if (grootte ==capaciteit) {
throw new IllegalStateException("Heap is vol");
}
maat++;
heap[grootte] =sleutel;
heapifyUp(grootte);
}
// Extraheer (en verwijder) het minimumelement
openbare int extractMin() {
als (grootte ==0) {
throw new IllegalStateException("Heap is leeg");
}
int min =hoop[1];
heap[1] =heap[grootte];
maat--;
heapifyDown(1);
retour min;
}
// Haal het minimumelement op zonder het te verwijderen
public int peekMin() {
als (grootte ==0) {
throw new IllegalStateException("Heap is leeg");
}
retourheap[1];
}
//Controleer of de heap leeg is
openbare booleaanse waarde isEmpty(){
retourgrootte ==0;
}
public static void main(String[] args) {
ArrayHeap-heap =nieuwe ArrayHeap(10);
heap.insert(10);
heap.insert(5);
heap.insert(15);
heap.insert(3);
heap.insert(8);
System.out.println("Minimaal element:" + heap.peekMin()); // Uitgang:3
System.out.println("Geëxtraheerd minimumelement:" + heap.extractMin()); // Uitgang:3
System.out.println("Nieuw minimumelement:" + heap.peekMin()); // Uitgang:5
}
}
```
Deze implementatie biedt basisheapbewerkingen. Onthoud dat dit een *min-heap* is; om er een *max-heap* van te maken, zou je de vergelijkingslogica in `heapifyUp` en `heapifyDown` moeten omkeren. Voor grotere hoeveelheden kunt u overwegen een geavanceerdere gegevensstructuur of bibliotheek te gebruiken als de prestaties van cruciaal belang worden. U kunt dit ook uitbreiden om generieke gegevens voor veelzijdigere gegevenstypen te verwerken. Vergeet niet om potentiële uitzonderingen, zoals 'IllegalStateException', voor lege of volledige heaps af te handelen.