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 f99502b..31e7190 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 @@ -136,18 +136,17 @@ public class BinaryHeap> implements PriorityQueue { } @Override - // on est là + // on est là : tout faux utilise paircolletdown public void remove(E x) throws ElementNotFoundException { - ArrayList temp = new ArrayList(); - for (E e : array){ - if (e != x){ - temp.add(e); - } + int id = array.indexOf(x); + if (this.isEmpty() || this.size()==0 || id >= currentSize || id == -1){ + throw new ElementNotFoundException(x); + }else { + this.array.set(array.indexOf(x), this.array.get(currentSize-1)); + currentSize--; + percolateUp(id); + percolateDown(id); } - for (int i=array.indexOf(x);i