binary heap remove

This commit is contained in:
Georgia Koutsodima 2023-03-29 18:26:27 +02:00
parent 30bf791092
commit d9e7c9df3b

View file

@ -138,6 +138,31 @@ public class BinaryHeap<E extends Comparable<E>> implements PriorityQueue<E> {
@Override
public void remove(E x) throws ElementNotFoundException {
// TODO:
int k=0;
int index =-1; //on cherche l'indice de x si il est dans le cas et sinon on rentre dans l'exception
for (E element:array){
if (k==currentSize){
break;
}
if (element.equals(x)){
index=k;
}
k+=1;
}
if (index==-1){ //x n'est pas dans le tas
throw new ElementNotFoundException(x);
}
E last=this.array.get(currentSize-1); //dernier élement du tas
this.array.set(index, last);
currentSize=currentSize-1; //on enlève le dernier élement (qui était dans le tas) du tas
percolateDown(index);
percolateUp(index);
}
@Override