diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/utils/BinaryHeap.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/utils/BinaryHeap.java index a5073cd..90fee1f 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/utils/BinaryHeap.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/utils/BinaryHeap.java @@ -134,7 +134,32 @@ public class BinaryHeap> implements PriorityQueue { @Override public void remove(E x) throws ElementNotFoundException { - // TODO: + + int xIndex = this.array.indexOf(x); + if(xIndex < 0 || xIndex > this.currentSize-1){ + + throw new ElementNotFoundException(x); + } + + + else{ + + E last = this.array.get(this.currentSize-1); + + this.arraySet(xIndex, last); + this.currentSize--; + + int PIndex = indexParent(xIndex); + + E Parent = this.array.get(PIndex); + + + + this.percolateUp(xIndex); // les comparaisons sont déjà gérées dans les percolates et sont récursif + this.percolateDown(xIndex); + } + + } @Override